Re: [PATCH v3 11/12] usb: misc: usbsevseg: update to use usb_control_msg_send()

From: Johan Hovold
Date: Wed Jan 27 2021 - 11:47:25 EST


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.thazhemadam@xxxxxxxxx>
> ---
> 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