Re: [PATCH] staging: gdm724x: get lock before calling usb_[disable|enable]_autosuspend()

From: Greg Kroah-Hartman
Date: Tue Aug 03 2021 - 01:16:16 EST


On Mon, Aug 02, 2021 at 11:37:03PM +0100, Salah Triki wrote:
> Based on the documentation of usb_[disable|enable]_autosuspend(), the
> caller must hold udev's device lock.
>
> Signed-off-by: Salah Triki <salah.triki@xxxxxxxxx>
> ---
> drivers/staging/gdm724x/gdm_usb.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/drivers/staging/gdm724x/gdm_usb.c b/drivers/staging/gdm724x/gdm_usb.c
> index 54bdb64f52e8..31b3b3e563c8 100644
> --- a/drivers/staging/gdm724x/gdm_usb.c
> +++ b/drivers/staging/gdm724x/gdm_usb.c
> @@ -846,7 +846,9 @@ static int gdm_usb_probe(struct usb_interface *intf,
> udev->intf = intf;
>
> intf->needs_remote_wakeup = 1;
> + usb_lock_device(usbdev);
> usb_enable_autosuspend(usbdev);
> + usb_unlock_device(usbdev);
> pm_runtime_set_autosuspend_delay(&usbdev->dev, AUTO_SUSPEND_TIMER);
>
> /* List up hosts with big endians, otherwise,
> --
> 2.25.1

Please look at the other places where this function is called and note
that the pattern you have added here is not used in those situations
either, so perhaps this change is not correct at all.

thanks,

greg k-h