diff mbox

[1/7] HID: hiddev: use hid_hw_open/close instead of usbhid_open/close

Message ID 20170531205951.30852-2-dmitry.torokhov@gmail.com (mailing list archive)
State New, archived
Headers show

Commit Message

Dmitry Torokhov May 31, 2017, 8:59 p.m. UTC
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(-)

Comments

kernel test robot June 1, 2017, 2:22 a.m. UTC | #1
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 mbox

Patch

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);