On Sat 05 Sep 2020 at 08:14, Jakub Kicinski <[email protected]> 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: [email protected]
>> Fixes: 0190c1d452a9 ("net: sched: atomically check-allocate action")
>> Cc: Jamal Hadi Salim <[email protected]>
>> Cc: Vlad Buslov <[email protected]>
>
> Vlad, it'd have been nice to see your review tag here.

Reviewed. Sorry for the delay.

>
>> Cc: Jiri Pirko <[email protected]>
>> Signed-off-by: Cong Wang <[email protected]>
>
> LGTM, applied and queued for stable, thank you Cong!

Reply via email to