From: Ying Xue <ying....@windriver.com> Date: Wed, 14 Feb 2018 13:37:57 +0800
> At present it's unsafe to configure link properties through netlink > as the entire setting process is not under RTNL lock protection. Now > TIPC supports two different sets of netlink APIs at the same time, and > they share the same set of backend functions to configure bearer, > media and net properties. In order to solve the missing RTNL issue, > we have to make the whole __tipc_nl_compat_doit() protected by RTNL, > which means any function called within it cannot take RTNL any more. > So in the series we first introduce the following new functions which > doesn't hold RTNl lock: > > - __tipc_nl_bearer_disable() > - __tipc_nl_bearer_enable() > - __tipc_nl_bearer_set() > - __tipc_nl_media_set() > - __tipc_nl_net_set() > > Meanwhile, __tipc_nl_compat_doit() has been reconstructed to minimize > the time of holding RTNL lock. > > Changes in v4: > - Per suggestion of Kirill Tkhai, divided original big one patch into > seven small ones so that they can be easily reviewed. > > Changes in v3: > - Optimized return method of __tipc_nl_bearer_enable() regarding > the comments from David M and Kirill Tkhai > - Moved the allocations of memory in __tipc_nl_compat_doit() out > of RTNL lock to minimize the time of holding RTNL lock according > to the suggestion of Kirill Tkhai. > > Changes in v2: > - The whole operation of setting bearer/media properties has been > protected under RTNL, as per feedback from David M. Series applied, thank you.