diff options
author | WANG Cong <[email protected]> | 2015-10-01 11:37:42 -0700 |
---|---|---|
committer | David S. Miller <[email protected]> | 2015-10-05 06:30:33 -0700 |
commit | 6bd00b850635abb0044e06101761533c8beba79c (patch) | |
tree | 65141acd5f97da77b3b997646ec270b4037ac1bb /lib/cpu-notifier-error-inject.c | |
parent | fec31ffffa6e05845ab13908d0ac0d5a10816836 (diff) |
act_mirred: fix a race condition on mirred_list
After commit 1ce87720d456 ("net: sched: make cls_u32 lockless")
we began to release tc actions in a RCU callback. However,
mirred action relies on RTNL lock to protect the global
mirred_list, therefore we could have a race condition
between RCU callback and netdevice event, which caused
a list corruption as reported by Vinson.
Instead of relying on RTNL lock, introduce a spinlock to
protect this list.
Note, in non-bind case, it is still called with RTNL lock,
therefore should disable BH too.
Reported-by: Vinson Lee <[email protected]>
Cc: John Fastabend <[email protected]>
Cc: Jamal Hadi Salim <[email protected]>
Signed-off-by: Cong Wang <[email protected]>
Signed-off-by: Cong Wang <[email protected]>
Acked-by: Jamal Hadi Salim <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
Diffstat (limited to 'lib/cpu-notifier-error-inject.c')
0 files changed, 0 insertions, 0 deletions