Showing error 1043

User: Jiri Slaby
Error type: Leaving function in locked state
Error type description: Some lock is not unlocked on all paths of a function, so it is leaked
File location: drivers/block/cciss.c
Line in file: 2981
Project: Linux Kernel
Project version: 2.6.28
Tools: Undetermined 1
Entered: 2012-03-04 17:07:06 UTC


Source:

2951#else
2952        return (((h->access.intr_pending(h) == 0) ||
2953                 (h->interrupts_enabled == 0)));
2954#endif
2955}
2956
2957static irqreturn_t do_cciss_intr(int irq, void *dev_id)
2958{
2959        ctlr_info_t *h = dev_id;
2960        CommandList_struct *c;
2961        unsigned long flags;
2962        __u32 a, a1, a2;
2963
2964        if (interrupt_not_for_us(h))
2965                return IRQ_NONE;
2966        /*
2967         * If there are completed commands in the completion queue,
2968         * we had better do something about it.
2969         */
2970        spin_lock_irqsave(CCISS_LOCK(h->ctlr), flags);
2971        while (interrupt_pending(h)) {
2972                while ((a = get_next_completion(h)) != FIFO_EMPTY) {
2973                        a1 = a;
2974                        if ((a & 0x04)) {
2975                                a2 = (a >> 3);
2976                                if (a2 >= h->nr_cmds) {
2977                                        printk(KERN_WARNING
2978                                               "cciss: controller cciss%d failed, stopping.\n",
2979                                               h->ctlr);
2980                                        fail_all_cmds(h->ctlr);
2981                                        return IRQ_HANDLED;
2982                                }
2983
2984                                c = h->cmd_pool + a2;
2985                                a = c->busaddr;
2986
2987                        } else {
2988                                a &= ~3;
2989                                if ((c = h->cmpQ) == NULL) {
2990                                        printk(KERN_WARNING
2991                                               "cciss: Completion of %08x ignored\n",
Show full sources