Thread (14 messages) 14 messages, 5 authors, 2015-11-02

Re: kernel BUG in ipmr_queue_xmit()

From: Eric Dumazet <hidden>
Date: 2015-10-30 04:15:44

On Thu, 2015-10-29 at 18:41 -0700, Ani Sinha wrote:
quoted hunk ↗ jump to hunk
Signed-off-by: Ani Sinha <redacted>
---
 net/ipv4/ipmr.c | 2 ++
 1 file changed, 2 insertions(+)
diff --git a/net/ipv4/ipmr.c b/net/ipv4/ipmr.c
index 866ee89..48df3cc 100644
--- a/net/ipv4/ipmr.c
+++ b/net/ipv4/ipmr.c
@@ -936,7 +936,9 @@ static void ipmr_cache_resolve(struct net *net, struct mr_table *mrt,
 
 			rtnl_unicast(skb, net, NETLINK_CB(skb).portid);
 		} else {
+			preempt_disable();
 			ip_mr_forward(net, mrt, skb, c, 0);
+			preempt_enable();
 		}
 	}
 }
I do not believe this fix is correct.

Better replace the 
IP_INC_STATS_BH() by IP_INC_STATS()

and IP_ADD_STATS_BH() by IP_ADD_STATS()
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help