Showing error 1431

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


Source:

123        return IRQ_NONE;
124}
125
126/**
127 * handle_IRQ_event - irq action chain handler
128 * @irq:        the interrupt number
129 * @action:        the interrupt action chain for this irq
130 *
131 * Handles the action chain of an irq event
132 */
133irqreturn_t handle_IRQ_event(unsigned int irq, struct irqaction *action)
134{
135        irqreturn_t ret, retval = IRQ_NONE;
136        unsigned int status = 0;
137
138        if (!(action->flags & IRQF_DISABLED))
139                local_irq_enable_in_hardirq();
140
141        do {
142                ret = action->handler(irq, action->dev_id);
143                if (ret == IRQ_HANDLED)
144                        status |= action->flags;
145                retval |= ret;
146                action = action->next;
147        } while (action);
148
149        if (status & IRQF_SAMPLE_RANDOM)
150                add_interrupt_randomness(irq);
151        local_irq_disable();
152
153        return retval;
154}
155
156#ifndef CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ
157/**
158 * __do_IRQ - original all in one highlevel IRQ handler
159 * @irq:        the interrupt number
160 *
161 * __do_IRQ handles all normal device IRQ's (the special
162 * SMP cross-CPU interrupts have their own specific
163 * handlers).
Show full sources