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