Messages in this thread Patch in this message | | | Date | Thu, 21 Feb 2013 12:07:05 -0800 | From | tip-bot for Thomas Gleixner <> | Subject | [tip:irq/urgent] irq: Sanitize invoke_softirq |
| |
Commit-ID: facd8b80c67a3cf64a467c4a2ac5fb31f2e6745b Gitweb: http://git.kernel.org/tip/facd8b80c67a3cf64a467c4a2ac5fb31f2e6745b 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 20:52:24 +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 f2a9346..24a921b 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); - } } /*
| |