[PATCH 0/3] firewire: ohci: switch to threaded IRQ handler for SelfIDComplete event

Takashi Sakamoto posted 3 patches 1 month, 1 week ago
drivers/firewire/ohci.c | 61 +++++++++++++++++------------------------
1 file changed, 25 insertions(+), 36 deletions(-)
[PATCH 0/3] firewire: ohci: switch to threaded IRQ handler for SelfIDComplete event
Posted by Takashi Sakamoto 1 month, 1 week ago
Hi,

This patchset replaces the module-local workqueue with a threaded IRQ
handler for handling the SelfIDComplete event in the 1394 OHCI PCI driver.

The SelfIDComplete event is the first step in maintaining bus topology.
It occurs after a bus reset or when the topology changes, and must be
processed outside the hard IRQ context due to the latency involved in
enumerating the SelfID sequence. Historically, this was handled by a
module-local workqueue with the WQ_MEM_RECLAIM flag. A threaded IRQ
handler offers a cleaner and more reliable solution, leveraging the
kernel's common infrastructure and eliminating the need for maintaining
a custom workqueue.

Takashi Sakamoto (3):
  firewire: ohci: move self_id_complete tracepoint after validating
    register
  firewire: ohci: use threaded IRQ handler to handle SelfIDComplete
    event
  firewire: ohci: remove module-local workqueue

 drivers/firewire/ohci.c | 61 +++++++++++++++++------------------------
 1 file changed, 25 insertions(+), 36 deletions(-)


base-commit: 8748368c3d92f7bdef67c90d3f62ab92083b3677
-- 
2.48.1
Re: [PATCH 0/3] firewire: ohci: switch to threaded IRQ handler for SelfIDComplete event
Posted by Takashi Sakamoto 1 month, 1 week ago
On Sat, Aug 23, 2025 at 12:09:51PM +0900, Takashi Sakamoto wrote:
> Hi,
> 
> This patchset replaces the module-local workqueue with a threaded IRQ
> handler for handling the SelfIDComplete event in the 1394 OHCI PCI driver.
> 
> The SelfIDComplete event is the first step in maintaining bus topology.
> It occurs after a bus reset or when the topology changes, and must be
> processed outside the hard IRQ context due to the latency involved in
> enumerating the SelfID sequence. Historically, this was handled by a
> module-local workqueue with the WQ_MEM_RECLAIM flag. A threaded IRQ
> handler offers a cleaner and more reliable solution, leveraging the
> kernel's common infrastructure and eliminating the need for maintaining
> a custom workqueue.
> 
> Takashi Sakamoto (3):
>   firewire: ohci: move self_id_complete tracepoint after validating
>     register
>   firewire: ohci: use threaded IRQ handler to handle SelfIDComplete
>     event
>   firewire: ohci: remove module-local workqueue
> 
>  drivers/firewire/ohci.c | 61 +++++++++++++++++------------------------
>  1 file changed, 25 insertions(+), 36 deletions(-)

Applied to for-next branch.


Regards

Takashi Sakamoto