[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20201129160612.1908074-14-anant.thazhemadam@gmail.com>
Date: Sun, 29 Nov 2020 21:36:10 +0530
From: Anant Thazhemadam <anant.thazhemadam@...il.com>
To: Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
Anant Thazhemadam <anant.thazhemadam@...il.com>
Cc: linux-usb@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: [PATCH 13/15] usb: misc: trancevibrator: update to use usb_control_msg_send()
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, the instance of usb_control_msg() has been replaced with
usb_control_msg_send() and the return value checking condition has also
been modified appropriately.
Signed-off-by: Anant Thazhemadam <anant.thazhemadam@...il.com>
---
drivers/usb/misc/trancevibrator.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/drivers/usb/misc/trancevibrator.c b/drivers/usb/misc/trancevibrator.c
index a3dfc77578ea..2c36ee249b4b 100644
--- a/drivers/usb/misc/trancevibrator.c
+++ b/drivers/usb/misc/trancevibrator.c
@@ -59,12 +59,12 @@ static ssize_t speed_store(struct device *dev, struct device_attribute *attr,
dev_dbg(&tv->udev->dev, "speed = %d\n", tv->speed);
/* Set speed */
- retval = usb_control_msg(tv->udev, usb_sndctrlpipe(tv->udev, 0),
+ retval = usb_control_msg_send(tv->udev, 0,
0x01, /* vendor request: set speed */
USB_DIR_IN | USB_TYPE_VENDOR | USB_RECIP_OTHER,
tv->speed, /* speed value */
- 0, NULL, 0, USB_CTRL_GET_TIMEOUT);
- if (retval) {
+ 0, NULL, 0, USB_CTRL_GET_TIMEOUT, GFP_KERNEL);
+ if (retval == 0) {
tv->speed = old;
dev_dbg(&tv->udev->dev, "retval = %d\n", retval);
return retval;
--
2.25.1
Powered by blists - more mailing lists