sony-laptop: adjust error handling in finding SNC handles
authorMattia Dongili <malattia@linux.it>
Sat, 19 May 2012 13:35:52 +0000 (22:35 +0900)
committerMatthew Garrett <mjg@redhat.com>
Thu, 31 May 2012 18:29:35 +0000 (14:29 -0400)
All handles must be greater than 0, also return more meaningful error
codes on invalid conditions.

Signed-off-by: Mattia Dongili <malattia@linux.it>
Signed-off-by: Matthew Garrett <mjg@redhat.com>
drivers/platform/x86/sony-laptop.c

index c3f54ad8125c0b26854624b0819a6b968422e81c..2b72e476dfff07d5aab1af1bd0c2c3e1da54915d 100644 (file)
@@ -870,8 +870,8 @@ static int sony_find_snc_handle(int handle)
        int i;
 
        /* not initialized yet, return early */
-       if (!handles)
-               return -1;
+       if (!handles || !handle)
+               return -EINVAL;
 
        for (i = 0; i < 0x10; i++) {
                if (handles->cap[i] == handle) {
@@ -881,7 +881,7 @@ static int sony_find_snc_handle(int handle)
                }
        }
        dprintk("handle 0x%.4x not found\n", handle);
-       return -1;
+       return -EINVAL;
 }
 
 static int sony_call_snc_handle(int handle, int argument, int *result)
@@ -890,7 +890,7 @@ static int sony_call_snc_handle(int handle, int argument, int *result)
        int offset = sony_find_snc_handle(handle);
 
        if (offset < 0)
-               return -1;
+               return offset;
 
        arg = offset | argument;
        ret = sony_nc_int_call(sony_nc_acpi_handle, "SN07", &arg, result);