lkml.org 
[lkml]   [2013]   [Jun]   [25]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
From
Subject[PATCH] Added a check for NULL pointer in hid_add_device
Date
This check greatly simplifies creating a dummy hid device.
With this check in place a hid dummy can be created simply by allocating and adding the device.
This used to be possible in earlier Kernel versions.

Signed-off-by: Michael Banken <michael.banken@mathe.stud.uni-erlangen.de>
Signed-off-by: Lorenz Haspel <lorenz@badgers.com>
---
drivers/hid/hid-core.c | 37 ++++++++++++++++++++-----------------
1 file changed, 20 insertions(+), 17 deletions(-)

diff --git a/drivers/hid/hid-core.c b/drivers/hid/hid-core.c
index 0951a9a..88c573e 100644
--- a/drivers/hid/hid-core.c
+++ b/drivers/hid/hid-core.c
@@ -2289,24 +2289,27 @@ int hid_add_device(struct hid_device *hdev)
if (hid_ignore(hdev))
return -ENODEV;

- /*
- * Read the device report descriptor once and use as template
- * for the driver-specific modifications.
- */
- ret = hdev->ll_driver->parse(hdev);
- if (ret)
- return ret;
- if (!hdev->dev_rdesc)
- return -ENODEV;
-
- /*
- * Scan generic devices for group information
- */
- if (hid_ignore_special_drivers ||
- !hid_match_id(hdev, hid_have_special_driver)) {
- ret = hid_scan_report(hdev);
+ if (hdev->ll_driver != NULL) {
+ /*
+ * Read the device report descriptor once and use as template
+ * for the driver-specific modifications.
+ */
+ ret = hdev->ll_driver->parse(hdev);
if (ret)
- hid_warn(hdev, "bad device descriptor (%d)\n", ret);
+ return ret;
+ if (!hdev->dev_rdesc)
+ return -ENODEV;
+
+ /*
+ * Scan generic devices for group information
+ */
+ if (hid_ignore_special_drivers ||
+ !hid_match_id(hdev, hid_have_special_driver)) {
+ ret = hid_scan_report(hdev);
+ if (ret)
+ hid_warn(hdev,
+ "bad device descriptor (%d)\n", ret);
+ }
}

/* XXX hack, any other cleaner solution after the driver core
--
1.7.10.4


\
 
 \ /
  Last update: 2013-06-25 20:21    [W:0.093 / U:0.992 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site