On Thu, Sep 25, 2025 at 11:03:42AM -0400, Sean Anderson wrote:
Panics can occur at any time, so taking locks may cause a deadlock (such as if the panicking CPU held the lock). coresight_panic_cb uses bus_for_each_dev, but that calls bus_to_subsys which takes bus_kset->list_lock.
Instead of registering a single panic notifier and iterating over coresight devices, register a panic notifier for each coresight device that requires it (letting the atomic notifier list handle iteration). atomic_notifier_chain_unregister will just return -ENOENT if a notifier block isn't on the list, so it's safe to call when we haven't registered a notifier.
Fixes: 46006ceb5d02 ("coresight: core: Add provision for panic callbacks") Signed-off-by: Sean Anderson sean.anderson@linux.dev
Reviewed-by: Leo Yan leo.yan@arm.com