From d25a32fa7695adb71fe1fd02c3defe90bc3a1192 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Tue, 28 Jun 2011 15:44:15 +0200 Subject: [PATCH 062/293] softirq-thread-do-softirq.patch Signed-off-by: Thomas Gleixner --- include/linux/interrupt.h | 2 ++ net/core/dev.c | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/include/linux/interrupt.h b/include/linux/interrupt.h index a64b00e..21b94de 100644 --- a/include/linux/interrupt.h +++ b/include/linux/interrupt.h @@ -454,6 +454,8 @@ struct softirq_action asmlinkage void do_softirq(void); asmlinkage void __do_softirq(void); +static inline void thread_do_softirq(void) { do_softirq(); } + extern void open_softirq(int nr, void (*action)(struct softirq_action *)); extern void softirq_init(void); static inline void __raise_softirq_irqoff(unsigned int nr) diff --git a/net/core/dev.c b/net/core/dev.c index 2aac4ec..2ae608c 100644 --- a/net/core/dev.c +++ b/net/core/dev.c @@ -3033,7 +3033,7 @@ int netif_rx_ni(struct sk_buff *skb) preempt_disable(); err = netif_rx(skb); if (local_softirq_pending()) - do_softirq(); + thread_do_softirq(); preempt_enable(); return err;