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