[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <877dt5bx9c.fsf@buslov.dev>
Date: Mon, 07 Sep 2020 15:13:19 +0300
From: Vlad Buslov <vlad@...lov.dev>
To: Jakub Kicinski <kuba@...nel.org>
Cc: Cong Wang <xiyou.wangcong@...il.com>, netdev@...r.kernel.org,
syzbot+80e32b5d1f9923f8ace6@...kaller.appspotmail.com,
Jamal Hadi Salim <jhs@...atatu.com>,
Vlad Buslov <vladbu@...lanox.com>,
Jiri Pirko <jiri@...nulli.us>
Subject: Re: [Patch net] act_ife: load meta modules before tcf_idr_check_alloc()
On Sat 05 Sep 2020 at 08:14, Jakub Kicinski <kuba@...nel.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+80e32b5d1f9923f8ace6@...kaller.appspotmail.com
>> Fixes: 0190c1d452a9 ("net: sched: atomically check-allocate action")
>> Cc: Jamal Hadi Salim <jhs@...atatu.com>
>> Cc: Vlad Buslov <vladbu@...lanox.com>
>
> Vlad, it'd have been nice to see your review tag here.
Reviewed. Sorry for the delay.
>
>> Cc: Jiri Pirko <jiri@...nulli.us>
>> Signed-off-by: Cong Wang <xiyou.wangcong@...il.com>
>
> LGTM, applied and queued for stable, thank you Cong!
Powered by blists - more mailing lists