USB: kobil_sct: fix non-atomic allocation in write path
Write may be called from interrupt context so make sure to use
GFP_ATOMIC for all allocations in write.
Fixes: 1da177e4c3
("Linux-2.6.12-rc2")
Cc: stable <stable@vger.kernel.org>
Signed-off-by: Johan Hovold <johan@kernel.org>
This commit is contained in:
parent
0df1f2487d
commit
1912528376
|
@ -335,7 +335,8 @@ static int kobil_write(struct tty_struct *tty, struct usb_serial_port *port,
|
|||
port->interrupt_out_urb->transfer_buffer_length = length;
|
||||
|
||||
priv->cur_pos = priv->cur_pos + length;
|
||||
result = usb_submit_urb(port->interrupt_out_urb, GFP_NOIO);
|
||||
result = usb_submit_urb(port->interrupt_out_urb,
|
||||
GFP_ATOMIC);
|
||||
dev_dbg(&port->dev, "%s - Send write URB returns: %i\n", __func__, result);
|
||||
todo = priv->filled - priv->cur_pos;
|
||||
|
||||
|
@ -350,7 +351,7 @@ static int kobil_write(struct tty_struct *tty, struct usb_serial_port *port,
|
|||
if (priv->device_type == KOBIL_ADAPTER_B_PRODUCT_ID ||
|
||||
priv->device_type == KOBIL_ADAPTER_K_PRODUCT_ID) {
|
||||
result = usb_submit_urb(port->interrupt_in_urb,
|
||||
GFP_NOIO);
|
||||
GFP_ATOMIC);
|
||||
dev_dbg(&port->dev, "%s - Send read URB returns: %i\n", __func__, result);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue