diff options
author | David S. Miller <davem@davemloft.net> | 2017-11-09 10:03:10 +0900 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2017-11-09 10:03:10 +0900 |
commit | 623859ae06b85cabba79ce78f0d49e67783d4c34 (patch) | |
tree | 4600cfecab2372a77cfb9143e4b24b059d24433a /net/xfrm | |
parent | 8f5624629105589bcc23d0e51cc01bd8103d09a5 (diff) | |
parent | 35c55fc156d85a396a975fc17636f560fc02fd65 (diff) |
Merge branch 'net-sched-race-fix'
Cong Wang says:
====================
net_sched: close the race between call_rcu() and cleanup_net()
This patchset tries to fix the race between call_rcu() and
cleanup_net() again. Without holding the netns refcnt the
tc_action_net_exit() in netns workqueue could be called before
filter destroy works in tc filter workqueue. This patchset
moves the netns refcnt from tc actions to tcf_exts, without
breaking per-netns tc actions.
Patch 1 reverts the previous fix, patch 2 introduces two new
API's to help to address the bug and the rest patches switch
to the new API's. Please see each patch for details.
I was not able to reproduce this bug, but now after adding
some delay in filter destroy work I manage to trigger the
crash. After this patchset, the crash is not reproducible
any more and the debugging printk's show the order is expected
too.
====================
Fixes: ddf97ccdd7cb ("net_sched: add network namespace support for tc actions")
Reported-by: Lucas Bates <lucasb@mojatatu.com>
Cc: Lucas Bates <lucasb@mojatatu.com>
Cc: Jamal Hadi Salim <jhs@mojatatu.com>
Cc: Jiri Pirko <jiri@resnulli.us>
Signed-off-by: Cong Wang <xiyou.wangcong@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/xfrm')
0 files changed, 0 insertions, 0 deletions