[PATCH v2] coresight: Fix possible deadlock in coresight_panic_cb

Leo Yan leo.yan at arm.com
Fri Sep 12 02:35:34 PDT 2025


Hi Sean,

On Thu, Sep 11, 2025 at 11:33:15AM -0400, Sean Anderson wrote:
> coresight_panic_cb is called with interrupts disabled during panics.
> However, bus_for_each_dev calls bus_to_subsys which takes
> bus_kset->list_lock without disabling IRQs. This will cause a deadlock
> if a panic occurs while one of the other coresight functions that uses
> bus_for_each_dev is running.

The decription is a bit misleading. Even when IRQ is disabled, if an
exception happens, a CPU still can be trapped for handling kernel panic.

> Maintain a separate list of coresight devices to access during a panic.

Rather than maintaining a separate list and introducing a new spinlock,
I would argue if we can simply register panic notifier in TMC ETR and
ETF drviers (see tmc_panic_sync_etr() and tmc_panic_sync_etf()).

If there is no dependency between CoreSight modules in panic sync flow,
it is not necessary to maintain list (and lock) for these modules.

I have not involved in panic patches before, so I would like to know
the maintainers' opinion.

Thanks,
Leo



More information about the linux-arm-kernel mailing list