diff options
author | Sebastian Andrzej Siewior <bigeasy@linutronix.de> | 2016-02-09 18:17:18 +0100 |
---|---|---|
committer | Sebastian Andrzej Siewior <bigeasy@linutronix.de> | 2016-02-13 00:34:59 +0100 |
commit | bde44b6f6e1cb4eef34ef1f81125925e2ac3f244 (patch) | |
tree | dc3d60a3284b15db9bdbe1558712f1b893bac41c | |
parent | 0a7b907d290c82ff42dc4a55ae3a9a2162fd5c7f (diff) | |
download | rt-linux-bde44b6f6e1cb4eef34ef1f81125925e2ac3f244.tar.gz |
kernel: softirq: unlock with irqs on
We unlock the lock while the interrupts are off. This isn't a problem
now but will get because the migrate_disable() + enable are not
symmetrical in regard to the status of interrupts.
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
-rw-r--r-- | kernel/softirq.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/kernel/softirq.c b/kernel/softirq.c index b44aedd374312..0e373e97d0c7d 100644 --- a/kernel/softirq.c +++ b/kernel/softirq.c @@ -549,8 +549,10 @@ static void do_current_softirqs(void) do_single_softirq(i); } softirq_clr_runner(i); - unlock_softirq(i); WARN_ON(current->softirq_nestcnt != 1); + local_irq_enable(); + unlock_softirq(i); + local_irq_disable(); } } |