Dirk Hohndel wrote:
[INPUT] hidinput_connect incorrectly ignored return value from
input_register_device
Signed-off-by: Dirk Hohndel <[EMAIL PROTECTED]>
---
drivers/hid/hid-input.c | 12 ++++++++++--
1 files changed, 10 insertions(+), 2 deletions(-)
diff --git a/drivers/hid/hid-input.c b/drivers/hid/hid-input.c
index dd332f2..880161b 100644
--- a/drivers/hid/hid-input.c
+++ b/drivers/hid/hid-input.c
@@ -1186,13 +1186,21 @@ int hidinput_connect(struct hid_device *hid)
* UGCI) cram a lot of unrelated inputs into the
* same interface. */
hidinput->report = report;
- input_register_device(hidinput->input);
+ if (input_register_device(hidinput->input)) {
+ input_free_device(hidinput->input);
+ kfree(hidinput);
+ return -1;
+ }
hidinput = NULL;
}
}
if (hidinput)
- input_register_device(hidinput->input);
+ if (input_register_device(hidinput->input)) {
+ input_free_device(hidinput->input);
+ kfree(hidinput);
+ return -1;
ACK, thanks for revising