diff mbox series

HID: hid-ntrig: fix the error handling code in ntrig_probe

Message ID 20220313150237.1214062-1-mx_xiang@hust.edu.cn
State New
Headers show
Series HID: hid-ntrig: fix the error handling code in ntrig_probe | expand

Commit Message

Mingxuan Xiang March 13, 2022, 3:02 p.m. UTC
If sysfs_create_group in ntrig_probe fails, sysfs_remove_group in
ntrig_remove would hit WARN().

Fix this by returning err in ntrig_probe rather than ignoring the
failure of sysfs_create_group.

CC: Dongliang Mu <dzm91@hust.edu.cn>
Fixes: eab32f5f6557 ("HID: ntrig: add sysfs access to filter parameters")
Signed-off-by: Mingxuan Xiang <mx_xiang@hust.edu.cn>
---
 drivers/hid/hid-ntrig.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

Comments

Rafi Rubin April 3, 2022, 6:34 p.m. UTC | #1
The writable parameters are also settable as module parameters and I suspect are not really widely used. I used them for tuning the defaults and dealing with unreliable devices, not in the course of normal use.  So I agree creation of the sysfs nodes 
should not block probing and using the device.

Thank you for working on the error handling,
Rafi
diff mbox series

Patch

diff --git a/drivers/hid/hid-ntrig.c b/drivers/hid/hid-ntrig.c
index b5d26f03fe6b..f49427815d98 100644
--- a/drivers/hid/hid-ntrig.c
+++ b/drivers/hid/hid-ntrig.c
@@ -951,10 +951,14 @@  static int ntrig_probe(struct hid_device *hdev, const struct hid_device_id *id)
 
 	ret = sysfs_create_group(&hdev->dev.kobj,
 			&ntrig_attribute_group);
-	if (ret)
+	if (ret) {
 		hid_err(hdev, "cannot create sysfs group\n");
+		goto err_sysfs_create;
+	}
 
 	return 0;
+err_sysfs_create:
+	hid_hw_stop(hdev);
 err_free:
 	kfree(nd);
 	return ret;