Messages in this thread Patch in this message | | | Date | Thu, 21 Feb 2013 09:46:13 -0800 | From | tip-bot for Thomas Gleixner <> | Subject | [tip:irq/urgent] irq: Sanitize invoke_softirq |
| |
Commit-ID: 1ba476a0c9bd0907fa31a74d47e9f4f84b404690 Gitweb: http://git.kernel.org/tip/1ba476a0c9bd0907fa31a74d47e9f4f84b404690 Author: Thomas Gleixner <tglx@linutronix.de> AuthorDate: Thu, 21 Feb 2013 18:17:42 +0100 Committer: Thomas Gleixner <tglx@linutronix.de> CommitDate: Thu, 21 Feb 2013 18:32:45 +0100
irq: Sanitize invoke_softirq
With the irq protection in irq_exit, we can remove the #ifdeffery and the bh_disable/enable dance in invoke_softirq()
Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Cc: Frederic Weisbecker <fweisbec@gmail.com> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Ingo Molnar <mingo@kernel.org> Cc: Paul E. McKenney <paulmck@linux.vnet.ibm.com> Cc: Linus Torvalds <torvalds@linuxfoundation.org> Link: http://lkml.kernel.org/r/alpine.LFD.2.02.1302202155320.22263@ionos
--- kernel/softirq.c | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-)
diff --git a/kernel/softirq.c b/kernel/softirq.c index d1f7943..aebc590 100644 --- a/kernel/softirq.c +++ b/kernel/softirq.c @@ -322,18 +322,10 @@ void irq_enter(void) static inline void invoke_softirq(void) { - if (!force_irqthreads) { -#ifdef __ARCH_IRQ_EXIT_IRQS_DISABLED + if (!force_irqthreads) __do_softirq(); -#else - do_softirq(); -#endif - } else { - __local_bh_disable((unsigned long)__builtin_return_address(0), - SOFTIRQ_OFFSET); + else wakeup_softirqd(); - __local_bh_enable(SOFTIRQ_OFFSET); - } } /*
| |