lkml.org 
[lkml]   [2017]   [Feb]   [5]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 3.10 111/319] USB: kobil_sct: fix non-atomic allocation in write path
    Date
    From: Johan Hovold <johan@kernel.org>

    commit 191252837626fca0de694c18bb2aa64c118eda89 upstream

    Write may be called from interrupt context so make sure to use
    GFP_ATOMIC for all allocations in write.

    Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
    Cc: stable <stable@vger.kernel.org>
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Willy Tarreau <w@1wt.eu>
    ---
    drivers/usb/serial/kobil_sct.c | 5 +++--
    1 file changed, 3 insertions(+), 2 deletions(-)

    diff --git a/drivers/usb/serial/kobil_sct.c b/drivers/usb/serial/kobil_sct.c
    index 78b48c3..efa75b4 100644
    --- a/drivers/usb/serial/kobil_sct.c
    +++ b/drivers/usb/serial/kobil_sct.c
    @@ -336,7 +336,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;

    @@ -351,7 +352,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);
    }
    }
    --
    2.8.0.rc2.1.gbe9624a
    \
     
     \ /
      Last update: 2017-02-05 20:43    [W:2.714 / U:0.716 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site