On Mon, Jun 10 2024 at 02:30, Peng Liu wrote:
handle_nested_irq() is supposed to be running inside the parent thread handler context. It per se has no dedicated kernel thread, thus shouldn't touch desc->threads_active. The parent kernel thread has already taken care of this.
No it has not. The parent thread has marked itself in the parent threads interrupt descriptor.
How does that help synchronizing the nested interrupt, which has a separate interrupt descriptor?
Fixes: e2c12739ccf7 ("genirq: Prevent nested thread vs synchronize_hardirq() deadlock") Cc: stable@vger.kernel.org
There is nothing to fix.
Signed-off-by: Peng Liu iwtbavbm@gmail.com
Despite of its correctness, I'm afraid the testing on my only PC can't cover the affected code path. So the patch may be totally -UNTESTED-.
Which correctness?
The change log of the commit you want to "fix" says:
Remove the incorrect usage in the nested threaded interrupt case and instead re-use the threads_active / wait_for_threads mechanism to wait for nested threaded interrupts to complete.
It's very clearly spelled out, no?
Thanks,
tglx