Re: [PATCH 2/3] HID: nvidia-shield: Fix some missing function calls() in the probe error handling path

From: Rahul Rameshbabu
Date: Sun Aug 27 2023 - 15:44:38 EST


On Sat, 26 Aug, 2023 19:42:18 +0200 Christophe JAILLET <christophe.jaillet@xxxxxxxxxx> wrote:
> The commit in Fixes updated the error handling path of
> thunderstrike_create() and the remove function but not the error handling
> path of shield_probe(), should an error occur after a successful
> thunderstrike_create() call.
>
> Add the missing calls.
>
> Fixes: 3ab196f88237 ("HID: nvidia-shield: Add battery support for Thunderstrike")
> Signed-off-by: Christophe JAILLET <christophe.jaillet@xxxxxxxxxx>
> ---
> drivers/hid/hid-nvidia-shield.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/drivers/hid/hid-nvidia-shield.c b/drivers/hid/hid-nvidia-shield.c
> index 66a7478e2c9d..849b3f8409a0 100644
> --- a/drivers/hid/hid-nvidia-shield.c
> +++ b/drivers/hid/hid-nvidia-shield.c
> @@ -1074,9 +1074,11 @@ static int shield_probe(struct hid_device *hdev, const struct hid_device_id *id)
> err_stop:
> hid_hw_stop(hdev);
> err_haptics:

Functionally, the change looks good to me. Can we update this label from
err_haptics to err_ts_create? Because of the label name, I accidentally
forgot to add other cleanup in this context originally... (Rust borrow
checker please rescue me)

> + power_supply_unregister(ts->base.battery_dev.psy);
> if (ts->haptics_dev)
> input_unregister_device(ts->haptics_dev);
> led_classdev_unregister(&ts->led_dev);
> + ida_free(&thunderstrike_ida, ts->id);
> return ret;
> }

--
Thanks,

Rahul Rameshbabu