Showing error 564

User: Jiri Slaby
Error type: Double Lock
Error type description: Some lock is locked twice unintentionally in a sequence
File location: drivers/char/riscom8.c
Line in file: 992
Project: Linux Kernel
Project version: 2.6.28
Confirmation: Fixed accidentally by c146942573c84b16ccb480a9cfa885a7581585a8
Tools: Stanse (1.2)
Entered: 2011-11-07 22:19:59 UTC


Source:

 962        if (board >= RC_NBOARD || !(rc_board[board].flags & RC_BOARD_PRESENT))
 963                return -ENODEV;
 964
 965        bp = &rc_board[board];
 966        port = rc_port + board * RC_NPORT + RC_PORT(tty->index);
 967        if (rc_paranoia_check(port, tty->name, "rc_open"))
 968                return -ENODEV;
 969
 970        error = rc_setup_board(bp);
 971        if (error)
 972                return error;
 973
 974        port->port.count++;
 975        tty->driver_data = port;
 976        port->port.tty = tty;
 977
 978        error = rc_setup_port(bp, port);
 979        if (error == 0)
 980                error = block_til_ready(tty, filp, port);
 981        return error;
 982}
 983
 984static void rc_flush_buffer(struct tty_struct *tty)
 985{
 986        struct riscom_port *port = (struct riscom_port *)tty->driver_data;
 987        unsigned long flags;
 988
 989        if (rc_paranoia_check(port, tty->name, "rc_flush_buffer"))
 990                return;
 991
 992        spin_lock_irqsave(&riscom_lock, flags);
 993        port->xmit_cnt = port->xmit_head = port->xmit_tail = 0;
 994        spin_unlock_irqrestore(&riscom_lock, flags);
 995
 996        tty_wakeup(tty);
 997}
 998
 999static void rc_close(struct tty_struct *tty, struct file *filp)
1000{
1001        struct riscom_port *port = (struct riscom_port *) tty->driver_data;
1002        struct riscom_board *bp;
Show full sources