diff options
Diffstat (limited to 'arch/i386/kernel/irq.c')
| -rw-r--r-- | arch/i386/kernel/irq.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/arch/i386/kernel/irq.c b/arch/i386/kernel/irq.c index 16b491703967..6cb529f60dcc 100644 --- a/arch/i386/kernel/irq.c +++ b/arch/i386/kernel/irq.c | |||
| @@ -166,7 +166,7 @@ void irq_ctx_init(int cpu) | |||
| 166 | irqctx->tinfo.task = NULL; | 166 | irqctx->tinfo.task = NULL; |
| 167 | irqctx->tinfo.exec_domain = NULL; | 167 | irqctx->tinfo.exec_domain = NULL; |
| 168 | irqctx->tinfo.cpu = cpu; | 168 | irqctx->tinfo.cpu = cpu; |
| 169 | irqctx->tinfo.preempt_count = SOFTIRQ_OFFSET; | 169 | irqctx->tinfo.preempt_count = 0; |
| 170 | irqctx->tinfo.addr_limit = MAKE_MM_SEG(0); | 170 | irqctx->tinfo.addr_limit = MAKE_MM_SEG(0); |
| 171 | 171 | ||
| 172 | softirq_ctx[cpu] = irqctx; | 172 | softirq_ctx[cpu] = irqctx; |
| @@ -211,6 +211,10 @@ asmlinkage void do_softirq(void) | |||
| 211 | : "0"(isp) | 211 | : "0"(isp) |
| 212 | : "memory", "cc", "edx", "ecx", "eax" | 212 | : "memory", "cc", "edx", "ecx", "eax" |
| 213 | ); | 213 | ); |
| 214 | /* | ||
| 215 | * Shouldnt happen, we returned above if in_interrupt(): | ||
| 216 | */ | ||
| 217 | WARN_ON_ONCE(softirq_count()); | ||
| 214 | } | 218 | } |
| 215 | 219 | ||
| 216 | local_irq_restore(flags); | 220 | local_irq_restore(flags); |
