summaryrefslogtreecommitdiff
path: root/drivers/net/ethernet/huawei
diff options
context:
space:
mode:
authorCong Wang <xiyou.wangcong@gmail.com>2020-09-03 19:10:11 -0700
committerJakub Kicinski <kuba@kernel.org>2020-09-04 22:08:59 -0700
commitcc8e58f8325cdf14b9516b61c384cdfd02a4f408 (patch)
tree2160b26ff40843ab785308ceacab79263d1026fd /drivers/net/ethernet/huawei
parentc2b947879ca320ac5505c6c29a731ff17da5e805 (diff)
act_ife: load meta modules before tcf_idr_check_alloc()
The following deadlock scenario is triggered by syzbot: Thread A: Thread B: tcf_idr_check_alloc() ... populate_metalist() rtnl_unlock() rtnl_lock() ... request_module() tcf_idr_check_alloc() rtnl_lock() At this point, thread A is waiting for thread B to release RTNL lock, while thread B is waiting for thread A to commit the IDR change with tcf_idr_insert() later. Break this deadlock situation by preloading ife modules earlier, before tcf_idr_check_alloc(), this is fine because we only need to load modules we need potentially. Reported-and-tested-by: syzbot+80e32b5d1f9923f8ace6@syzkaller.appspotmail.com Fixes: 0190c1d452a9 ("net: sched: atomically check-allocate action") Cc: Jamal Hadi Salim <jhs@mojatatu.com> Cc: Vlad Buslov <vladbu@mellanox.com> Cc: Jiri Pirko <jiri@resnulli.us> Signed-off-by: Cong Wang <xiyou.wangcong@gmail.com> Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Diffstat (limited to 'drivers/net/ethernet/huawei')
0 files changed, 0 insertions, 0 deletions