__raise_softirq_irqoff() must be called with interrupts disabled to protect the per CPU softirq pending state update against an interrupt and soft interrupt handling on return from interrupt. Add a lockdep assertion to validate the calling convention. [ tglx: Massaged changelog ]
Unified · Split
| @@ -481,6 +481,7 @@ void raise_softirq(unsigned int nr) · 480 unmodified lines | ||
| 481 | 481 | |
| 482 | 482 | void __raise_softirq_irqoff(unsigned int nr) |
| 483 | 483 | { |
| 484 | + lockdep_assert_irqs_disabled(); | |
| 484 | 485 | trace_softirq_raise(nr); |
| 485 | 486 | or_softirq_pending(1UL << nr); |
| 486 | 487 | } |