Showing error 1430

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: kernel/irq/autoprobe.c
Line in file: 104
Project: Linux Kernel
Project version: 2.6.28
Tools: Stanse (1.2)
Entered: 2012-05-21 20:30:05 UTC


Source:

 74                        if (desc->chip->startup(i))
 75                                desc->status |= IRQ_PENDING;
 76                }
 77                spin_unlock_irq(&desc->lock);
 78        }
 79
 80        /*
 81         * Wait for spurious interrupts to trigger
 82         */
 83        msleep(100);
 84
 85        /*
 86         * Now filter out any obviously spurious interrupts
 87         */
 88        for_each_irq_desc(i, desc) {
 89                spin_lock_irq(&desc->lock);
 90                status = desc->status;
 91
 92                if (status & IRQ_AUTODETECT) {
 93                        /* It triggered already - consider it spurious. */
 94                        if (!(status & IRQ_WAITING)) {
 95                                desc->status = status & ~IRQ_AUTODETECT;
 96                                desc->chip->shutdown(i);
 97                        } else
 98                                if (i < 32)
 99                                        mask |= 1 << i;
100                }
101                spin_unlock_irq(&desc->lock);
102        }
103
104        return mask;
105}
106EXPORT_SYMBOL(probe_irq_on);
107
108/**
109 *        probe_irq_mask - scan a bitmap of interrupt lines
110 *        @val:        mask of interrupts to consider
111 *
112 *        Scan the interrupt lines and return a bitmap of active
113 *        autodetect interrupts. The interrupt probe logic state
114 *        is then returned to its previous value.
Show full sources