firewire: ohci: use threaded IRQ handler to handle SelfIDComplete event
authorTakashi Sakamoto <o-takashi@sakamocchi.jp>
Sat, 23 Aug 2025 03:09:53 +0000 (12:09 +0900)
committerTakashi Sakamoto <o-takashi@sakamocchi.jp>
Sat, 23 Aug 2025 09:06:17 +0000 (18:06 +0900)
commit61efd0e1afb24f8a71cff80f7600ff7556378c53
treece3dae1367b7b166978869de7517b3975f9777ca
parent696968262aeee51e1c0529c3c060ddd180702e02
firewire: ohci: use threaded IRQ handler to handle SelfIDComplete event

The first step  maintaining the bus topology is to handle SelfIDComplete
event. This event occurs after initiating bus reset when 1394 OHCI link
layer is enabled, or when the bus topology changes (e.g. when a device is
added). Because enumeration of the selfID sequence can take some time, it
should be processed in a bottom half.

Currently, this is done in a module-local workqueue with the
WQ_MEM_RECLAIM flag, to allow invocation during memory reclaim paths. A
threaded IRQ handler is a preferable alternative, as it eliminates the
need to manage workqueue attributes manually.

Although SelfIDComplete events are not so frequent in normal usage,
handling them correctly is critical for proper bus topology management.
This commit switches SelfIDComplete handling to a threaded IRQ handler.

Link: https://lore.kernel.org/r/20250823030954.268412-3-o-takashi@sakamocchi.jp
Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
drivers/firewire/ohci.c