Re: [PATCH] net/sched: use spin_lock_bh() on &gact->tcf_lock

From: Jakub Kicinski
Date: Wed Oct 04 2023 - 20:01:28 EST


On Tue, 26 Sep 2023 18:26:25 +0000 Chengfeng Ye wrote:
> I find tcf_gate_act() acquires &gact->tcf_lock without disable
> bh explicitly, as gact->tcf_lock is acquired inside timer under
> softirq context, if tcf_gate_act() is not called with bh disable
> by default or under softirq context(which I am not sure as I cannot
> find corresponding documentation), then it could be the following
> deadlocks.
>
> tcf_gate_act()
> --> spin_loc(&gact->tcf_lock)
> <interrupt>
> --> gate_timer_func()
> --> spin_lock(&gact->tcf_lock)

This is a TC action, I don't think it can run without BH being already
disabled, can it?
--
pw-bot: cr