lkml.org 
[lkml]   [2010]   [Aug]   [10]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 22/68] tty: Fix the digi acceleport driver NULL checks
    Date
    From: Alan Cox <alan@linux.intel.com>

    This now refcounts but doesn't actually check the reference was obtained in
    all the places it should.

    Signed-off-by: Alan Cox <alan@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    ---
    drivers/usb/serial/digi_acceleport.c | 14 +++++++++-----
    1 files changed, 9 insertions(+), 5 deletions(-)

    diff --git a/drivers/usb/serial/digi_acceleport.c b/drivers/usb/serial/digi_acceleport.c
    index fd35f73..b92070c 100644
    --- a/drivers/usb/serial/digi_acceleport.c
    +++ b/drivers/usb/serial/digi_acceleport.c
    @@ -609,8 +609,10 @@ static void digi_wakeup_write_lock(struct work_struct *work)
    static void digi_wakeup_write(struct usb_serial_port *port)
    {
    struct tty_struct *tty = tty_port_tty_get(&port->port);
    - tty_wakeup(tty);
    - tty_kref_put(tty);
    + if (tty) {
    + tty_wakeup(tty);
    + tty_kref_put(tty);
    + }
    }


    @@ -1682,7 +1684,7 @@ static int digi_read_inb_callback(struct urb *urb)
    priv->dp_throttle_restart = 1;

    /* receive data */
    - if (opcode == DIGI_CMD_RECEIVE_DATA) {
    + if (tty && opcode == DIGI_CMD_RECEIVE_DATA) {
    /* get flag from port_status */
    flag = 0;

    @@ -1763,10 +1765,12 @@ static int digi_read_oob_callback(struct urb *urb)
    return -1;

    tty = tty_port_tty_get(&port->port);
    +
    rts = 0;
    - rts = tty->termios->c_cflag & CRTSCTS;
    + if (tty)
    + rts = tty->termios->c_cflag & CRTSCTS;

    - if (opcode == DIGI_CMD_READ_INPUT_SIGNALS) {
    + if (tty && opcode == DIGI_CMD_READ_INPUT_SIGNALS) {
    spin_lock(&priv->dp_port_lock);
    /* convert from digi flags to termiox flags */
    if (val & DIGI_READ_INPUT_SIGNALS_CTS) {
    --
    1.7.2


    \
     
     \ /
      Last update: 2010-08-11 00:03    [W:0.024 / U:32.304 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site