asus-laptop: return proper error for store_ledd if write_acpi_int fail
authorAxel Lin <axel.lin@gmail.com>
Tue, 20 Jul 2010 22:19:48 +0000 (15:19 -0700)
committerMatthew Garrett <mjg@redhat.com>
Tue, 3 Aug 2010 13:49:01 +0000 (09:49 -0400)
In current implementation, store_ledd() does not return error if
write_acpi_int fail.  This patch fixes it by return -ENODEV if
write_acpi_int fail.

Signed-off-by: Axel Lin <axel.lin@gmail.com>
Cc: Matthew Garrett <mjg@redhat.com>
Cc: Corentin Chary <corentincj@iksaif.net>
Cc: Alan Jenkins <alan-jenkins@tuffmail.co.uk>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Matthew Garrett <mjg@redhat.com>
drivers/platform/x86/asus-laptop.c

index 19445eaff6ff9795ff18a58686bedc9292c9b849..40897bab2ebea50c08736d3c46dcf9d0bb0f50eb 100644 (file)
@@ -796,10 +796,11 @@ static ssize_t store_ledd(struct device *dev, struct device_attribute *attr,
 
        rv = parse_arg(buf, count, &value);
        if (rv > 0) {
-               if (write_acpi_int(asus->handle, METHOD_LEDD, value))
+               if (write_acpi_int(asus->handle, METHOD_LEDD, value)) {
                        pr_warning("LED display write failed\n");
-               else
-                       asus->ledd_status = (u32) value;
+                       return -ENODEV;
+               }
+               asus->ledd_status = (u32) value;
        }
        return rv;
 }