diff mbox

asus-wmi: fix error handling in store_sys_wmi()

Message ID 20151110221816.GC30281@mwanda (mailing list archive)
State Accepted, archived
Headers show

Commit Message

Dan Carpenter Nov. 10, 2015, 10:18 p.m. UTC
The asus_wmi_get_devstate_simple() returns 0-1 on success.  In theory
according to static checkers, it can return either -EIO or -ENODEV on
failure.  Currently the error handling code only handles -ENODEV and
-EIO is treated as success.  Let's make it handle the -EIO error as
well.

It's possible that it can't actually return -EIO and this patch is not
needed but in that case this patch is harmless and silences a static
checker warning so it's still worth it.

Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>

--
To unsubscribe from this list: send the line "unsubscribe platform-driver-x86" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Comments

Darren Hart Nov. 11, 2015, 6:22 a.m. UTC | #1
On Wed, Nov 11, 2015 at 01:18:16AM +0300, Dan Carpenter wrote:
> The asus_wmi_get_devstate_simple() returns 0-1 on success.  In theory
> according to static checkers, it can return either -EIO or -ENODEV on
> failure.  Currently the error handling code only handles -ENODEV and
> -EIO is treated as success.  Let's make it handle the -EIO error as
> well.
> 
> It's possible that it can't actually return -EIO and this patch is not
> needed but in that case this patch is harmless and silences a static
> checker warning so it's still worth it.
> 
> Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>

Thank you Dan, queued to testing.
diff mbox

Patch

diff --git a/drivers/platform/x86/asus-wmi.c b/drivers/platform/x86/asus-wmi.c
index e3a7502..f96f7b8 100644
--- a/drivers/platform/x86/asus-wmi.c
+++ b/drivers/platform/x86/asus-wmi.c
@@ -1682,7 +1682,7 @@  static ssize_t store_sys_wmi(struct asus_wmi *asus, int devid,
 	int rv, err, value;
 
 	value = asus_wmi_get_devstate_simple(asus, devid);
-	if (value == -ENODEV)	/* Check device presence */
+	if (value < 0)
 		return value;
 
 	rv = parse_arg(buf, count, &value);