[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <1372182701-12256-1-git-send-email-michael.banken@mathe.stud.uni-erlangen.de>
Date: Tue, 25 Jun 2013 19:51:41 +0200
From: Michael Banken <michael.banken@...he.stud.uni-erlangen.de>
To: linux-kernel@...r.kernel.org
Cc: rydberg@...omail.se, srinivas.pandruvada@...el.com,
erazor_de@...rs.sourceforge.net, benjamin.tissoires@...hat.com,
jkosina@...e.cz, lorenz@...gers.com,
linux-kernel@...informatik.uni-erlangen.de,
Michael Banken <michael.banken@...he.stud.uni-erlangen.de>
Subject: [PATCH] Added a check for NULL pointer in hid_add_device
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@...he.stud.uni-erlangen.de>
Signed-off-by: Lorenz Haspel <lorenz@...gers.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
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists