From: Eric Dumazet <eric.duma...@gmail.com> Date: Tue, 20 Mar 2018 10:20:15 -0700
> > > On 03/20/2018 10:11 AM, David Lebrun wrote: >> On 20/03/18 15:07, Eric Dumazet wrote: >>> This is not the proper fix. >>> >>> Control path holds RTNL and can sleeep if needed. >>> >>> RCU should be avoided in lwtunnel_build_state() >>> >> >> +Roopa >> >> In lwtunnel_build_state(), the RCU protects the lwtunnel_encap_ops "ops" >> which is rcu-dereferenced. Moreover, the lwtunnel_state_alloc() function, >> which is used in all build_state functions, also uses GFP_ATOMIC, so this >> seemed a proper fix, or at least proper mitigation. >> >> Do you suggest that the lwtunnel_encap_ops can be protected in a different >> way, not requiring RCU ? > > Yes, GFP_ATOMIC might be an 'easy fix' for net tree, > but for the future, GFP_KERNEL allocations make more sense in control path. Agreed. I'll apply this to net and queue it up for -stable, but long term making this able to use GFP_KERNEL properly is the real way to go about it.