mirror of
https://github.com/torvalds/linux.git
synced 2026-06-07 14:04:54 +02:00
net: hso: fix control-request directions
commit1a6e9a9c68upstream. The direction of the pipe argument must match the request-type direction bit or control requests may fail depending on the host-controller-driver implementation. Fix the tiocmset and rfkill requests which erroneously used usb_rcvctrlpipe(). Fixes:72dc1c096c("HSO: add option hso driver") Cc: stable@vger.kernel.org # 2.6.27 Signed-off-by: Johan Hovold <johan@kernel.org> Signed-off-by: David S. Miller <davem@davemloft.net> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
fb003a1bd6
commit
47da4f6142
|
|
@ -1689,7 +1689,7 @@ static int hso_serial_tiocmset(struct tty_struct *tty,
|
||||||
spin_unlock_irqrestore(&serial->serial_lock, flags);
|
spin_unlock_irqrestore(&serial->serial_lock, flags);
|
||||||
|
|
||||||
return usb_control_msg(serial->parent->usb,
|
return usb_control_msg(serial->parent->usb,
|
||||||
usb_rcvctrlpipe(serial->parent->usb, 0), 0x22,
|
usb_sndctrlpipe(serial->parent->usb, 0), 0x22,
|
||||||
0x21, val, if_num, NULL, 0,
|
0x21, val, if_num, NULL, 0,
|
||||||
USB_CTRL_SET_TIMEOUT);
|
USB_CTRL_SET_TIMEOUT);
|
||||||
}
|
}
|
||||||
|
|
@ -2436,7 +2436,7 @@ static int hso_rfkill_set_block(void *data, bool blocked)
|
||||||
if (hso_dev->usb_gone)
|
if (hso_dev->usb_gone)
|
||||||
rv = 0;
|
rv = 0;
|
||||||
else
|
else
|
||||||
rv = usb_control_msg(hso_dev->usb, usb_rcvctrlpipe(hso_dev->usb, 0),
|
rv = usb_control_msg(hso_dev->usb, usb_sndctrlpipe(hso_dev->usb, 0),
|
||||||
enabled ? 0x82 : 0x81, 0x40, 0, 0, NULL, 0,
|
enabled ? 0x82 : 0x81, 0x40, 0, 0, NULL, 0,
|
||||||
USB_CTRL_SET_TIMEOUT);
|
USB_CTRL_SET_TIMEOUT);
|
||||||
mutex_unlock(&hso_dev->mutex);
|
mutex_unlock(&hso_dev->mutex);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user