35 lines
1.1 KiB
Diff
35 lines
1.1 KiB
Diff
Subject: net: Use local_bh_disable in netif_rx_ni()
|
|
From: Thomas Gleixner <tglx@linutronix.de>
|
|
Date: Sun, 28 Oct 2012 15:12:49 +0000
|
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patches-3.10.4-rt1.tar.xz
|
|
|
|
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 <tglx@linutronix.de>
|
|
---
|
|
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
|
|
@@ -3204,11 +3204,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;
|
|
}
|