Eric Dumazet <eric.duma...@gmail.com> wrote: > > Signed-off-by: Ani Sinha <a...@arista.com> > > --- > > 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.
Yes, sorry. I should have suggested local_bh_disable instead. > Better replace the > IP_INC_STATS_BH() by IP_INC_STATS() > > and IP_ADD_STATS_BH() by IP_ADD_STATS() Hmm, whats the rationale for this? Note that IP_ADD_STATS_BH in question is unconditional (not in error path). It seems that its virtually always called from softirq except in the setsockopt case. Thanks Eric. -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html