Commit 889ed8b5 authored by Martin Kaiser's avatar Martin Kaiser Committed by Greg Kroah-Hartman
Browse files

staging: rtl8188eu: set pipe only once



Set the pipe for reading or writing in usbctrl_vendorreq only once. There's
no need to set it again for every retry.

Signed-off-by: default avatarMartin Kaiser <martin@kaiser.cx>
Link: https://lore.kernel.org/r/20210407170531.29356-5-martin@kaiser.cx


Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent b048a8db
Loading
Loading
Loading
Loading
+12 −10
Original line number Diff line number Diff line
@@ -249,19 +249,21 @@ usbctrl_vendorreq(struct adapter *adapt, u16 value, void *pdata, u16 len, u8 req
		goto release_mutex;
	}

	while (++vendorreq_times <= MAX_USBCTRL_VENDORREQ_TIMES) {
		memset(pIo_buf, 0, len);

	if (reqtype == REALTEK_USB_VENQT_READ) {
			pipe = usb_rcvctrlpipe(udev, 0);/* read_in */
		pipe = usb_rcvctrlpipe(udev, 0);
	} else if (reqtype == REALTEK_USB_VENQT_WRITE) {
			pipe = usb_sndctrlpipe(udev, 0);/* write_out */
			memcpy(pIo_buf, pdata, len);
		pipe = usb_sndctrlpipe(udev, 0);
	} else {
		status = -EINVAL;
		goto free_buf;
	}

	while (++vendorreq_times <= MAX_USBCTRL_VENDORREQ_TIMES) {
		if (reqtype == REALTEK_USB_VENQT_READ)
			memset(pIo_buf, 0, len);
		else
			memcpy(pIo_buf, pdata, len);

		status = usb_control_msg(udev, pipe, REALTEK_USB_VENQT_CMD_REQ,
					 reqtype, value, REALTEK_USB_VENQT_CMD_IDX,
					 pIo_buf, len, RTW_USB_CONTROL_MSG_TIMEOUT);