On Sat 05 Sep 2020 at 08:14, Jakub Kicinski <k...@kernel.org> wrote:
> On Thu,  3 Sep 2020 19:10:11 -0700 Cong Wang wrote:
>> 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+80e32b5d1f9923f8a...@syzkaller.appspotmail.com
>> Fixes: 0190c1d452a9 ("net: sched: atomically check-allocate action")
>> Cc: Jamal Hadi Salim <j...@mojatatu.com>
>> Cc: Vlad Buslov <vla...@mellanox.com>
>
> Vlad, it'd have been nice to see your review tag here.

Reviewed. Sorry for the delay.

>
>> Cc: Jiri Pirko <j...@resnulli.us>
>> Signed-off-by: Cong Wang <xiyou.wangc...@gmail.com>
>
> LGTM, applied and queued for stable, thank you Cong!

Reply via email to