staging: r8188eu: clean up the usb_writeN
authorMartin Kaiser <martin@kaiser.cx>
Sat, 21 Aug 2021 16:48:57 +0000 (18:48 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 26 Aug 2021 10:17:01 +0000 (12:17 +0200)
Remove unnecessary variables, check the length.

Acked-by: Michael Straube <straube.linux@gmail.com>
Acked-by: Phillip Potter <phil@philpotter.co.uk>
Signed-off-by: Martin Kaiser <martin@kaiser.cx>
Link: https://lore.kernel.org/r/20210821164859.4351-8-martin@kaiser.cx
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/r8188eu/hal/usb_ops_linux.c

index e01f1ac19596e8dd507c04d35e8c8810839730ba..5408383ccec3c6a2687e1223048716362be845af 100644 (file)
@@ -151,20 +151,15 @@ static int usb_write32(struct intf_hdl *pintfhdl, u32 addr, u32 val)
 
 static int usb_writeN(struct intf_hdl *pintfhdl, u32 addr, u32 length, u8 *pdata)
 {
-       u16 wvalue;
-       u16 len;
+       u16 wvalue = (u16)(addr & 0x0000ffff);
        u8 buf[VENDOR_CMD_MAX_DATA_LEN] = {0};
-       int ret;
-
 
+       if (length > VENDOR_CMD_MAX_DATA_LEN)
+               return -EINVAL;
 
-       wvalue = (u16)(addr & 0x0000ffff);
-       len = length;
-       memcpy(buf, pdata, len);
+       memcpy(buf, pdata, length);
 
-       ret = usbctrl_vendorreq(pintfhdl, wvalue, buf, len, REALTEK_USB_VENQT_WRITE);
-
-       return ret;
+       return usbctrl_vendorreq(pintfhdl, wvalue, buf, (length & 0xffff), REALTEK_USB_VENQT_WRITE);
 }
 
 static void interrupt_handler_8188eu(struct adapter *adapt, u16 pkt_len, u8 *pbuf)