diff options
author | Cong Wang <[email protected]> | 2019-02-11 13:06:14 -0800 |
---|---|---|
committer | David S. Miller <[email protected]> | 2019-02-12 14:10:56 -0500 |
commit | 8015d93ebd27484418d4952284fd02172fa4b0b2 (patch) | |
tree | 38d371d127638a0679b0879190a0e41efad59875 /tools/perf/scripts/python/export-to-postgresql.py | |
parent | 6a7dd172000bf3d50a24b2548fe9c692875d669c (diff) |
net_sched: fix a race condition in tcindex_destroy()
tcindex_destroy() invokes tcindex_destroy_element() via
a walker to delete each filter result in its perfect hash
table, and tcindex_destroy_element() calls tcindex_delete()
which schedules tcf RCU works to do the final deletion work.
Unfortunately this races with the RCU callback
__tcindex_destroy(), which could lead to use-after-free as
reported by Adrian.
Fix this by migrating this RCU callback to tcf RCU work too,
as that workqueue is ordered, we will not have use-after-free.
Note, we don't need to hold netns refcnt because we don't call
tcf_exts_destroy() here.
Fixes: 27ce4f05e2ab ("net_sched: use tcf_queue_work() in tcindex filter")
Reported-by: Adrian <[email protected]>
Cc: Ben Hutchings <[email protected]>
Cc: Jamal Hadi Salim <[email protected]>
Cc: Jiri Pirko <[email protected]>
Signed-off-by: Cong Wang <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
Diffstat (limited to 'tools/perf/scripts/python/export-to-postgresql.py')
0 files changed, 0 insertions, 0 deletions