On Mon, 12 Aug 2019 18:27:39 +0200 Benjamin Tissoires wrote: > This is a common pattern in the HID drivers to reset the drvdata. Some > do it properly, some do it only in case of failure. > > But, this is actually already handled by driver core, so there is no need > to do it manually. > > Signed-off-by: Benjamin Tissoires <benjamin.tissoires@xxxxxxxxxx> For hid-picolcd_core.c: Acked-by: Bruno Prémont <bonbons@xxxxxxxxxxxxxxxxx> > --- > drivers/hid/hid-cougar.c | 6 ++---- > drivers/hid/hid-gfrm.c | 7 ------- > drivers/hid/hid-lenovo.c | 2 -- > drivers/hid/hid-picolcd_core.c | 7 +------ > drivers/hid/hid-sensor-hub.c | 1 - > 5 files changed, 3 insertions(+), 20 deletions(-) > > diff --git a/drivers/hid/hid-cougar.c b/drivers/hid/hid-cougar.c > index e0bb7b34f3a4..4ff3bc1d25e2 100644 > --- a/drivers/hid/hid-cougar.c > +++ b/drivers/hid/hid-cougar.c > @@ -207,7 +207,7 @@ static int cougar_probe(struct hid_device *hdev, > error = hid_parse(hdev); > if (error) { > hid_err(hdev, "parse failed\n"); > - goto fail; > + return error; > } > > if (hdev->collection->usage == COUGAR_VENDOR_USAGE) { > @@ -219,7 +219,7 @@ static int cougar_probe(struct hid_device *hdev, > error = hid_hw_start(hdev, connect_mask); > if (error) { > hid_err(hdev, "hw start failed\n"); > - goto fail; > + return error; > } > > error = cougar_bind_shared_data(hdev, cougar); > @@ -249,8 +249,6 @@ static int cougar_probe(struct hid_device *hdev, > > fail_stop_and_cleanup: > hid_hw_stop(hdev); > -fail: > - hid_set_drvdata(hdev, NULL); > return error; > } > > diff --git a/drivers/hid/hid-gfrm.c b/drivers/hid/hid-gfrm.c > index 86c317320bf2..699186ff2349 100644 > --- a/drivers/hid/hid-gfrm.c > +++ b/drivers/hid/hid-gfrm.c > @@ -123,12 +123,6 @@ static int gfrm_probe(struct hid_device *hdev, const struct hid_device_id *id) > return ret; > } > > -static void gfrm_remove(struct hid_device *hdev) > -{ > - hid_hw_stop(hdev); > - hid_set_drvdata(hdev, NULL); > -} > - > static const struct hid_device_id gfrm_devices[] = { > { HID_BLUETOOTH_DEVICE(0x58, 0x2000), > .driver_data = GFRM100 }, > @@ -142,7 +136,6 @@ static struct hid_driver gfrm_driver = { > .name = "gfrm", > .id_table = gfrm_devices, > .probe = gfrm_probe, > - .remove = gfrm_remove, > .input_mapping = gfrm_input_mapping, > .raw_event = gfrm_raw_event, > .input_configured = gfrm_input_configured, > diff --git a/drivers/hid/hid-lenovo.c b/drivers/hid/hid-lenovo.c > index 364bc7f11d9d..96fa2a2c2cd3 100644 > --- a/drivers/hid/hid-lenovo.c > +++ b/drivers/hid/hid-lenovo.c > @@ -866,8 +866,6 @@ static void lenovo_remove_tpkbd(struct hid_device *hdev) > > led_classdev_unregister(&data_pointer->led_micmute); > led_classdev_unregister(&data_pointer->led_mute); > - > - hid_set_drvdata(hdev, NULL); > } > > static void lenovo_remove_cptkbd(struct hid_device *hdev) > diff --git a/drivers/hid/hid-picolcd_core.c b/drivers/hid/hid-picolcd_core.c > index 5f7a39a5d4af..1b5c63241af0 100644 > --- a/drivers/hid/hid-picolcd_core.c > +++ b/drivers/hid/hid-picolcd_core.c > @@ -534,8 +534,7 @@ static int picolcd_probe(struct hid_device *hdev, > data = kzalloc(sizeof(struct picolcd_data), GFP_KERNEL); > if (data == NULL) { > hid_err(hdev, "can't allocate space for Minibox PicoLCD device data\n"); > - error = -ENOMEM; > - goto err_no_cleanup; > + return -ENOMEM; > } > > spin_lock_init(&data->lock); > @@ -597,9 +596,6 @@ static int picolcd_probe(struct hid_device *hdev, > hid_hw_stop(hdev); > err_cleanup_data: > kfree(data); > -err_no_cleanup: > - hid_set_drvdata(hdev, NULL); > - > return error; > } > > @@ -635,7 +631,6 @@ static void picolcd_remove(struct hid_device *hdev) > picolcd_exit_cir(data); > picolcd_exit_keys(data); > > - hid_set_drvdata(hdev, NULL); > mutex_destroy(&data->mutex); > /* Finally, clean up the picolcd data itself */ > kfree(data); > diff --git a/drivers/hid/hid-sensor-hub.c b/drivers/hid/hid-sensor-hub.c > index be92a6f79687..94c7398b5c27 100644 > --- a/drivers/hid/hid-sensor-hub.c > +++ b/drivers/hid/hid-sensor-hub.c > @@ -742,7 +742,6 @@ static void sensor_hub_remove(struct hid_device *hdev) > } > spin_unlock_irqrestore(&data->lock, flags); > mfd_remove_devices(&hdev->dev); > - hid_set_drvdata(hdev, NULL); > mutex_destroy(&data->mutex); > } >