Showing error 1186

User: Jiri Slaby
Error type: Double Unlock
Error type description: Some lock is unlocked twice unintentionally in a sequence
File location: drivers/char/specialix.c
Line in file: 866
Project: Linux Kernel
Project version: 2.6.28
Tools: Stanse (1.2)
Entered: 2012-04-30 10:52:00 UTC


Source:

 836                        else
 837                                printk(KERN_ERR
 838                                "sx%d: status: 0x%x Bad receive ack 0x%02x.\n",
 839                                                board_No(bp), status, ack);
 840
 841                } else if (status & SRSR_TREQint) {
 842                        ack = sx_in(bp, CD186x_TRAR);
 843
 844                        if (ack == (SX_ID | GIVR_IT_TX))
 845                                sx_transmit(bp);
 846                        else
 847                                printk(KERN_ERR "sx%d: status: 0x%x Bad transmit ack 0x%02x. port: %d\n",
 848                                        board_No(bp), status, ack,
 849                                        port_No(sx_get_port(bp, "Int")));
 850                } else if (status & SRSR_MREQint) {
 851                        ack = sx_in(bp, CD186x_MRAR);
 852
 853                        if (ack == (SX_ID | GIVR_IT_MODEM))
 854                                sx_check_modem(bp);
 855                        else
 856                                printk(KERN_ERR
 857                                  "sx%d: status: 0x%x Bad modem ack 0x%02x.\n",
 858                                       board_No(bp), status, ack);
 859
 860                }
 861
 862                sx_out(bp, CD186x_EOIR, 0);   /* Mark end of interrupt */
 863        }
 864        bp->reg = saved_reg;
 865        outb(bp->reg, bp->base + SX_ADDR_REG);
 866        spin_unlock_irqrestore(&bp->lock, flags);
 867        func_exit();
 868        return IRQ_HANDLED;
 869}
 870
 871
 872/*
 873 *  Routines for open & close processing.
 874 */
 875
 876static void turn_ints_off(struct specialix_board *bp)
Show full sources