[PATCH v2 10/15] usb: misc: isight_firmware: update to use usb_control_msg_send()

Anant Thazhemadam
2020-11-30T01:32:36Z

For this reason, the instances of usb_control_msg() have been replaced with
usb_control_msg_send(), and return value checking has also been
appropriately enforced.

Signed-off-by: Anant Thazhemadam <anant.thazhemadam@gmail.com>
---
drivers/usb/misc/isight_firmware.c | 30 +++++++++++++-----------------
1 file changed, 13 insertions(+), 17 deletions(-)

diff --git a/drivers/usb/misc/isight_firmware.c b/drivers/usb/misc/isight_firmware.c
index 4d30095d6ad2..1bd14a431f6c 100644
--- a/drivers/usb/misc/isight_firmware.c
+++ b/drivers/usb/misc/isight_firmware.c
@@ -37,13 +37,10 @@ static int isight_firmware_load(struct usb_interface *intf,
struct usb_device *dev = interface_to_usbdev(intf);
int llen, len, req, ret = 0;
const struct firmware *firmware;
- unsigned char *buf = kmalloc(50, GFP_KERNEL);
+ unsigned char buf[50];
unsigned char data[4];
const u8 *ptr;

- if (!buf)
- return -ENOMEM;
-
if (request_firmware(&firmware, "isight.fw", &dev->dev) != 0) {
printk(KERN_ERR "Unable to load isight firmware\n");
ret = -ENODEV;
@@ -53,11 +50,11 @@ static int isight_firmware_load(struct usb_interface *intf,
ptr = firmware->data;

buf[0] = 0x01;
- if (usb_control_msg
- (dev, usb_sndctrlpipe(dev, 0), 0xa0, 0x40, 0xe600, 0, buf, 1,
- 300) != 1) {
+ ret = usb_control_msg_send(dev, 0, 0xa0, 0x40, 0xe600,
+ 0, &buf, 1, 300, GFP_KERNEL);
+ if (ret != 0) {
printk(KERN_ERR
- "Failed to initialise isight firmware loader\n");
+ "Failed to initialise isight firmware loader\n");
ret = -ENODEV;
goto out;
}
@@ -82,15 +79,15 @@ static int isight_firmware_load(struct usb_interface *intf,
ret = -ENODEV;
goto out;
}
- memcpy(buf, ptr, llen);
+ memcpy(&buf, ptr, llen);

ptr += llen;

- if (usb_control_msg
- (dev, usb_sndctrlpipe(dev, 0), 0xa0, 0x40, req, 0,
- buf, llen, 300) != llen) {
+ ret = usb_control_msg_send(dev, 0, 0xa0, 0x40, req, 0,
+ &buf, llen, 300, GFP_KERNEL);
+ if (ret != 0) {
printk(KERN_ERR
- "Failed to load isight firmware\n");
+ "Failed to load isight firmware\n");
ret = -ENODEV;
goto out;
}
@@ -99,15 +96,14 @@ static int isight_firmware_load(struct usb_interface *intf,
}

buf[0] = 0x00;
- if (usb_control_msg
- (dev, usb_sndctrlpipe(dev, 0), 0xa0, 0x40, 0xe600, 0, buf, 1,
- 300) != 1) {
+ ret = usb_control_msg_send(dev, 0, 0xa0, 0x40, 0xe600,
+ 0, &buf, 1, 300, GFP_KERNEL);
+ if (ret != 0) {
printk(KERN_ERR "isight firmware loading completion failed\n");
ret = -ENODEV;
}

out:
- kfree(buf);
release_firmware(firmware);
return ret;
}
--
2.25.1