Subject: net: Use local_bh_disable in netif_rx_ni() From: Thomas Gleixner Date: Sun, 28 Oct 2012 15:12:49 +0000 This code triggers the new WARN in __raise_softirq_irqsoff() though it actually looks at the softirq pending bit and calls into the softirq code, but that fits not well with the context related softirq model of RT. It's correct on mainline though, but going through local_bh_disable/enable here is not going to hurt badly. Signed-off-by: Thomas Gleixner --- net/core/dev.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) Index: linux-stable/net/core/dev.c =================================================================== --- linux-stable.orig/net/core/dev.c +++ linux-stable/net/core/dev.c @@ -2993,11 +2993,9 @@ int netif_rx_ni(struct sk_buff *skb) { int err; - migrate_disable(); + local_bh_disable(); err = netif_rx(skb); - if (local_softirq_pending()) - thread_do_softirq(); - migrate_enable(); + local_bh_enable(); return err; }