Message ID | 20170531205951.30852-2-dmitry.torokhov@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Hi Dmitry, [auto build test WARNING on hid/for-next] [also build test WARNING on v4.12-rc3 next-20170531] [if your patch is applied to the wrong git tree, please drop us a note to help improve the system] url: https://github.com/0day-ci/linux/commits/Dmitry-Torokhov/HID-Consolidate-serializing-ope-close-in-transport-drivers/20170601-092350 base: https://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid.git for-next config: x86_64-randconfig-x016-201722 (attached as .config) compiler: gcc-6 (Debian 6.2.0-3) 6.2.0 20160901 reproduce: # save the attached .config to linux build tree make ARCH=x86_64 All warnings (new ones prefixed by >>): drivers/hid/usbhid/hiddev.c: In function 'hiddev_open': >> drivers/hid/usbhid/hiddev.c:309:4: warning: ignoring return value of 'hid_hw_open', declared with attribute warn_unused_result [-Wunused-result] hid_hw_open(hid); ^~~~~~~~~~~~~~~~ vim +/hid_hw_open +309 drivers/hid/usbhid/hiddev.c 293 goto bail; 294 } 295 296 spin_lock_irq(&list->hiddev->list_lock); 297 list_add_tail(&list->node, &hiddev->list); 298 spin_unlock_irq(&list->hiddev->list_lock); 299 300 mutex_lock(&hiddev->existancelock); 301 if (!list->hiddev->open++) 302 if (list->hiddev->exist) { 303 struct hid_device *hid = hiddev->hid; 304 res = usbhid_get_power(hid); 305 if (res < 0) { 306 res = -EIO; 307 goto bail_unlock; 308 } > 309 hid_hw_open(hid); 310 } 311 mutex_unlock(&hiddev->existancelock); 312 return 0; 313 bail_unlock: 314 mutex_unlock(&hiddev->existancelock); 315 bail: 316 file->private_data = NULL; 317 vfree(list); --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation
diff --git a/drivers/hid/usbhid/hid-core.c b/drivers/hid/usbhid/hid-core.c index 83772fa7d92a..fb0cf5d70504 100644 --- a/drivers/hid/usbhid/hid-core.c +++ b/drivers/hid/usbhid/hid-core.c @@ -677,7 +677,7 @@ static int hid_get_class_descriptor(struct usb_device *dev, int ifnum, return result; } -int usbhid_open(struct hid_device *hid) +static int usbhid_open(struct hid_device *hid) { struct usbhid_device *usbhid = hid->driver_data; int res = 0; @@ -722,7 +722,7 @@ int usbhid_open(struct hid_device *hid) return res; } -void usbhid_close(struct hid_device *hid) +static void usbhid_close(struct hid_device *hid) { struct usbhid_device *usbhid = hid->driver_data; diff --git a/drivers/hid/usbhid/hiddev.c b/drivers/hid/usbhid/hiddev.c index 0e06368d1fbb..d949ac13af9e 100644 --- a/drivers/hid/usbhid/hiddev.c +++ b/drivers/hid/usbhid/hiddev.c @@ -237,7 +237,7 @@ static int hiddev_release(struct inode * inode, struct file * file) mutex_lock(&list->hiddev->existancelock); if (!--list->hiddev->open) { if (list->hiddev->exist) { - usbhid_close(list->hiddev->hid); + hid_hw_close(list->hiddev->hid); usbhid_put_power(list->hiddev->hid); } else { mutex_unlock(&list->hiddev->existancelock); @@ -282,7 +282,7 @@ static int hiddev_open(struct inode *inode, struct file *file) */ if (list->hiddev->exist) { if (!list->hiddev->open++) { - res = usbhid_open(hiddev->hid); + res = hid_hw_open(hiddev->hid); if (res < 0) { res = -EIO; goto bail; @@ -306,7 +306,7 @@ static int hiddev_open(struct inode *inode, struct file *file) res = -EIO; goto bail_unlock; } - usbhid_open(hid); + hid_hw_open(hid); } mutex_unlock(&hiddev->existancelock); return 0; @@ -935,7 +935,7 @@ void hiddev_disconnect(struct hid_device *hid) if (hiddev->open) { mutex_unlock(&hiddev->existancelock); - usbhid_close(hiddev->hid); + hid_hw_close(hiddev->hid); wake_up_interruptible(&hiddev->wait); } else { mutex_unlock(&hiddev->existancelock); diff --git a/drivers/hid/usbhid/usbhid.h b/drivers/hid/usbhid/usbhid.h index fa47d666cfcf..83ef5c14aa92 100644 --- a/drivers/hid/usbhid/usbhid.h +++ b/drivers/hid/usbhid/usbhid.h @@ -34,8 +34,6 @@ #include <linux/input.h> /* API provided by hid-core.c for USB HID drivers */ -void usbhid_close(struct hid_device *hid); -int usbhid_open(struct hid_device *hid); void usbhid_init_reports(struct hid_device *hid); int usbhid_get_power(struct hid_device *hid); void usbhid_put_power(struct hid_device *hid);
Instead of calling into usbhid code directly, let's use the standard accessors for the transport HID drivers. This also allows us make usbhid_open and close static. Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com> --- drivers/hid/usbhid/hid-core.c | 4 ++-- drivers/hid/usbhid/hiddev.c | 8 ++++---- drivers/hid/usbhid/usbhid.h | 2 -- 3 files changed, 6 insertions(+), 8 deletions(-)