On Wed, Jan 27, 2021 at 12:10:30AM +0530, Anant Thazhemadam wrote:
> The newer usb_control_msg_{send|recv}() API are an improvement on the
> existing usb_control_msg() as it ensures that a short read/write is treated
> as an error, data can be used off the stack, and raw usb pipes need not be
> created in the calling functions.
> For this reason, instances of usb_control_msg() have been replaced with
> usb_control_msg_send() appropriately.
> 
> Signed-off-by: Anant Thazhemadam <anant.thazhema...@gmail.com>
> ---
>  drivers/usb/misc/usbsevseg.c | 60 ++++++++++--------------------------
>  1 file changed, 17 insertions(+), 43 deletions(-)
> 
> diff --git a/drivers/usb/misc/usbsevseg.c b/drivers/usb/misc/usbsevseg.c
 
> @@ -99,15 +94,10 @@ static void update_display_mode(struct usb_sevsegdev 
> *mydev)
>       if(mydev->shadow_power != 1)
>               return;
>  
> -     rc = usb_control_msg(mydev->udev,
> -                     usb_sndctrlpipe(mydev->udev, 0),
> -                     0x12,
> -                     0x48,
> -                     (82 * 0x100) + 10, /* (set mode) */
> -                     (mydev->mode_msb * 0x100) + mydev->mode_lsb,
> -                     NULL,
> -                     0,
> -                     2000);
> +     rc = usb_control_msg_send(mydev->udev, 0, 0x12, 0x48,
> +                               (82 * 0x100) + 10, /* (set mode) */
> +                               (mydev->mode_msb * 0x100) + mydev->mode_lsb,
> +                               NULL, 0, 2000, GFP_KERNEL);
>  
>       if (rc < 0)
>               dev_dbg(&mydev->udev->dev, "mode retval = %d\n", rc);

This function is called from resume() and reset_resume() where GFP_NOIO
should be used (and is used for update_display_visual()) so I think you
need to add a GFP flag argument here too.

Looks good otherwise.

Johan

Reply via email to