HID: hiddev: Return specific error codes on connect failure
authorJason Gerecke <killertofu@gmail.com>
Thu, 11 Feb 2021 19:30:59 +0000 (11:30 -0800)
committerJiri Kosina <jkosina@suse.cz>
Mon, 8 Mar 2021 10:12:22 +0000 (11:12 +0100)
The only caller of this function only cares about gross success/failure
but we still might as well resolve the following smatch warning and fix
the other error paths as well:

    hiddev.c:894 hiddev_connect() warn: returning -1 instead of -ENOMEM is sloppy

Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
drivers/hid/usbhid/hiddev.c

index 45e0b1c..2fb2991 100644 (file)
@@ -887,11 +887,11 @@ int hiddev_connect(struct hid_device *hid, unsigned int force)
                                break;
 
                if (i == hid->maxcollection)
-                       return -1;
+                       return -EINVAL;
        }
 
        if (!(hiddev = kzalloc(sizeof(struct hiddev), GFP_KERNEL)))
-               return -1;
+               return -ENOMEM;
 
        init_waitqueue_head(&hiddev->wait);
        INIT_LIST_HEAD(&hiddev->list);
@@ -905,7 +905,7 @@ int hiddev_connect(struct hid_device *hid, unsigned int force)
                hid_err(hid, "Not able to get a minor for this device\n");
                hid->hiddev = NULL;
                kfree(hiddev);
-               return -1;
+               return retval;
        }
 
        /*