02 Jul, 2011

1 commit


30 Apr, 2011

1 commit

  • The tty value that should be put is the one that was just gotten by
    tty_port_tty_get, not the one that is the argument to the enclosing
    function.

    The semantic match that finds this problem is as follows:
    (http://coccinelle.lip6.fr/)

    //
    @exists@
    local idexpression struct tty_struct *x;
    expression ra,rr;
    statement S1,S2;
    @@

    x = tty_port_tty_get(...)
    ... when != x = rr
    when any
    when != tty_kref_put(x,...)
    when != if (...) { ... tty_kref_put(x,...) ...}
    (
    if() S1 else S2
    |
    if(...) { ... when != x = ra
    when forall
    when != tty_kref_put(x,...)
    *return...;
    }
    )
    //

    Signed-off-by: Julia Lawall
    Signed-off-by: Greg Kroah-Hartman

    Julia Lawall
     

26 Apr, 2011

1 commit

  • moxa_write can be called from atomic context with irqs disabled (from
    ppp_async_push). Don't enable interrupts by spin_unlock_bh as this
    might cause deadlocks in the ppp layer.

    Instead, use irqsave/irqrestore spin_lock functions.

    Signed-off-by: Jiri Slaby
    Cc: Alan Cox
    Signed-off-by: Greg Kroah-Hartman

    Jiri Slaby
     

20 Apr, 2011

2 commits

  • The bit is set in tty_port_block_til_ready (via moxa_open) and unset
    in tty_port_close (via moxa_close). No need to pin it in the driver.

    Signed-off-by: Jiri Slaby
    Cc: Alan Cox
    Signed-off-by: Greg Kroah-Hartman

    Jiri Slaby
     
  • drivers/tty/moxa.c:1287:2: warning: Value stored to 'port' is never read
    port = tty->index;
    ^ ~~~~~~~~~~
    drivers/tty/moxa.c:1763:2: warning: Value stored to 'cflag' is never read
    cflag = termio->c_cflag; /* termio->c_cflag */
    ^ ~~~~~~~~~~~~~~~

    Signed-off-by: Jiri Slaby
    Signed-off-by: Greg Kroah-Hartman

    Jiri Slaby
     

23 Feb, 2011

1 commit