I might be wrong but it doesn't look like xfrm_state_lock is required
for xfrm_policy_cache_flush and calling it under this lock triggers both
"sleeping function called from invalid context" and "possible circular
locking dependency detected" warnings on flush.
Fixes: ec30d78c14a8 xfrm: add xdst pcpu cache
Signed-off-by: Artem Savkov <redacted>
---
net/xfrm/xfrm_state.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
@@ -732,12 +732,12 @@ int xfrm_state_flush(struct net *net, u8 proto, bool task_valid)}}}+out:+spin_unlock_bh(&net->xfrm.xfrm_state_lock);if(cnt){err=0;xfrm_policy_cache_flush();}-out:-spin_unlock_bh(&net->xfrm.xfrm_state_lock);returnerr;}EXPORT_SYMBOL(xfrm_state_flush);
I might be wrong but it doesn't look like xfrm_state_lock is required
for xfrm_policy_cache_flush and calling it under this lock triggers both
"sleeping function called from invalid context" and "possible circular
locking dependency detected" warnings on flush.
Fixes: ec30d78c14a8 xfrm: add xdst pcpu cache
Signed-off-by: Artem Savkov <redacted>
You're right, its not needed (and wrong).
Acked-by: Florian Westphal <fw@strlen.de>
On Wed, Sep 27, 2017 at 02:31:03PM +0200, Florian Westphal wrote:
Artem Savkov [off-list ref] wrote:
quoted
I might be wrong but it doesn't look like xfrm_state_lock is required
for xfrm_policy_cache_flush and calling it under this lock triggers both
"sleeping function called from invalid context" and "possible circular
locking dependency detected" warnings on flush.
Fixes: ec30d78c14a8 xfrm: add xdst pcpu cache
Signed-off-by: Artem Savkov <redacted>
You're right, its not needed (and wrong).
Acked-by: Florian Westphal <fw@strlen.de>