Re: kernel BUG in ipmr_queue_xmit()
From: Eric Dumazet <hidden>
Date: 2015-10-30 04:15:44
From: Eric Dumazet <hidden>
Date: 2015-10-30 04:15:44
On Thu, 2015-10-29 at 18:41 -0700, Ani Sinha wrote:
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()