From: Qiuxu Zhuo <[email protected]>

Return immediately upon encountering a hash error or chunk error in the
IFS (In-Field Scan) test image to avoid meaningless assignments following
these errors.

Additionally, assign the boolean value 'true' instead of '1' to the
boolean variable 'ifs_pkg_auth', and use SZ_1K macro instead of '1024'
for better readability.

Signed-off-by: Qiuxu Zhuo <[email protected]>
Signed-off-by: Ehab Ababneh <[email protected]>
---
 drivers/platform/x86/intel/ifs/load.c | 34 ++++++++++++---------------
 1 file changed, 15 insertions(+), 19 deletions(-)

diff --git a/drivers/platform/x86/intel/ifs/load.c 
b/drivers/platform/x86/intel/ifs/load.c
index dde3f5eb379f..0edbf9eedc12 100644
--- a/drivers/platform/x86/intel/ifs/load.c
+++ b/drivers/platform/x86/intel/ifs/load.c
@@ -123,7 +123,6 @@ static void copy_hashes_authenticate_chunks(struct 
work_struct *work)
        int i, num_chunks, chunk_size;
        struct ifs_data *ifsd;
        u64 linear_addr, base;
-       u32 err_code;
 
        ifsd = ifs_get_data(dev);
        msrs = ifs_get_test_msrs(dev);
@@ -131,17 +130,16 @@ static void copy_hashes_authenticate_chunks(struct 
work_struct *work)
        wrmsrq(msrs->copy_hashes, ifs_hash_ptr);
        rdmsrq(msrs->copy_hashes_status, hashes_status.data);
 
-       /* enumerate the scan image information */
-       num_chunks = hashes_status.num_chunks;
-       chunk_size = hashes_status.chunk_size * 1024;
-       err_code = hashes_status.error_code;
-
        if (!hashes_status.valid) {
                ifsd->loading_error = true;
-               hashcopy_err_message(dev, err_code);
+               hashcopy_err_message(dev, hashes_status.error_code);
                goto done;
        }
 
+       /* enumerate the scan image information */
+       num_chunks = hashes_status.num_chunks;
+       chunk_size = hashes_status.chunk_size * SZ_1K;
+
        /* base linear address to the scan data */
        base = ifs_test_image_ptr;
 
@@ -153,14 +151,13 @@ static void copy_hashes_authenticate_chunks(struct 
work_struct *work)
                wrmsrq(msrs->copy_chunks, linear_addr);
                rdmsrq(msrs->copy_chunks_status, chunk_status.data);
 
-               ifsd->valid_chunks = chunk_status.valid_chunks;
-               err_code = chunk_status.error_code;
-
-               if (err_code) {
+               if (chunk_status.error_code) {
                        ifsd->loading_error = true;
-                       auth_err_message(dev, err_code);
+                       auth_err_message(dev, chunk_status.error_code);
                        goto done;
                }
+
+               ifsd->valid_chunks = chunk_status.valid_chunks;
        }
 done:
        complete(&ifs_done);
@@ -199,16 +196,15 @@ static int copy_hashes_authenticate_chunks_gen2(struct 
device *dev)
                wrmsrq(msrs->copy_hashes, ifs_hash_ptr);
                rdmsrq(msrs->copy_hashes_status, hashes_status.data);
 
+               if (!hashes_status.valid) {
+                       hashcopy_err_message(dev, hashes_status.error_code);
+                       return -EIO;
+               }
+
                /* enumerate the scan image information */
                chunk_size = hashes_status.chunk_size * SZ_1K;
-               err_code = hashes_status.error_code;
-
                num_chunks = get_num_chunks(ifsd->generation, hashes_status);
 
-               if (!hashes_status.valid) {
-                       hashcopy_err_message(dev, err_code);
-                       return -EIO;
-               }
                ifsd->loaded_version = ifs_header_ptr->rev;
                ifsd->chunk_size = chunk_size;
        } else {
@@ -344,7 +340,7 @@ static int scan_chunks_sanity_check(struct device *dev)
                        ret = -EIO;
                        goto out;
                }
-               ifs_pkg_auth[curr_pkg] = 1;
+               ifs_pkg_auth[curr_pkg] = true;
        }
        ret = 0;
        ifsd->loaded_version = ifs_header_ptr->rev;
-- 
2.43.0


Reply via email to