diff options
| -rw-r--r-- | kernel/irq/chip.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/kernel/irq/chip.c b/kernel/irq/chip.c index 9336f2e89e40..ac1f850d4937 100644 --- a/kernel/irq/chip.c +++ b/kernel/irq/chip.c | |||
| @@ -252,7 +252,7 @@ handle_level_irq(unsigned int irq, struct irq_desc *desc, struct pt_regs *regs) | |||
| 252 | mask_ack_irq(desc, irq); | 252 | mask_ack_irq(desc, irq); |
| 253 | 253 | ||
| 254 | if (unlikely(desc->status & IRQ_INPROGRESS)) | 254 | if (unlikely(desc->status & IRQ_INPROGRESS)) |
| 255 | goto out; | 255 | goto out_unlock; |
| 256 | desc->status &= ~(IRQ_REPLAY | IRQ_WAITING); | 256 | desc->status &= ~(IRQ_REPLAY | IRQ_WAITING); |
| 257 | kstat_cpu(cpu).irqs[irq]++; | 257 | kstat_cpu(cpu).irqs[irq]++; |
| 258 | 258 | ||
| @@ -263,7 +263,7 @@ handle_level_irq(unsigned int irq, struct irq_desc *desc, struct pt_regs *regs) | |||
| 263 | action = desc->action; | 263 | action = desc->action; |
| 264 | if (unlikely(!action || (desc->status & IRQ_DISABLED))) { | 264 | if (unlikely(!action || (desc->status & IRQ_DISABLED))) { |
| 265 | desc->status |= IRQ_PENDING; | 265 | desc->status |= IRQ_PENDING; |
| 266 | goto out; | 266 | goto out_unlock; |
| 267 | } | 267 | } |
| 268 | 268 | ||
| 269 | desc->status |= IRQ_INPROGRESS; | 269 | desc->status |= IRQ_INPROGRESS; |
| @@ -276,9 +276,9 @@ handle_level_irq(unsigned int irq, struct irq_desc *desc, struct pt_regs *regs) | |||
| 276 | 276 | ||
| 277 | spin_lock(&desc->lock); | 277 | spin_lock(&desc->lock); |
| 278 | desc->status &= ~IRQ_INPROGRESS; | 278 | desc->status &= ~IRQ_INPROGRESS; |
| 279 | out: | ||
| 280 | if (!(desc->status & IRQ_DISABLED) && desc->chip->unmask) | 279 | if (!(desc->status & IRQ_DISABLED) && desc->chip->unmask) |
| 281 | desc->chip->unmask(irq); | 280 | desc->chip->unmask(irq); |
| 281 | out_unlock: | ||
| 282 | spin_unlock(&desc->lock); | 282 | spin_unlock(&desc->lock); |
| 283 | } | 283 | } |
| 284 | 284 | ||
