OSDN Git Service

platform/x86: surface3_power: Fix always true condition in mshw0011_space_handler()
authorAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Mon, 30 Mar 2020 10:26:50 +0000 (13:26 +0300)
committerAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Mon, 30 Mar 2020 10:26:50 +0000 (13:26 +0300)
smatch warnings:
.../surface3_power.c:417 mshw0011_space_handler() warn: always true condition '(ret >= 0) => +(0-u32max >= 0)'

Refactor error handling returned by mshw0011_adp_psr() to avoid always
true condition.

Reported-by: kbuild test robot <lkp@intel.com>
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
drivers/platform/x86/surface3_power.c

index cf08911..946ac2d 100644 (file)
@@ -402,12 +402,14 @@ mshw0011_space_handler(u32 function, acpi_physical_address command,
 
        if (gsb->cmd.arg0 == MSHW0011_CMD_DEST_ADP1 &&
            gsb->cmd.arg1 == MSHW0011_CMD_ADP1_PSR) {
-               ret = mshw0011_adp_psr(cdata);
-               if (ret >= 0) {
-                       status = ret;
-                       ret = 0;
+               status = mshw0011_adp_psr(cdata);
+               if (status >= 0) {
+                       ret = AE_OK;
+                       goto out;
+               } else {
+                       ret = AE_ERROR;
+                       goto err;
                }
-               goto out;
        }
 
        if (gsb->cmd.arg0 != MSHW0011_CMD_DEST_BAT0) {