[PATCH 0/5] firewire: ohci: invoke all AT packet callbacks from a workqueue
From: Takashi Sakamoto
Date: Sat Sep 19 2026 - 07:50:30 EST
Hi,
For local-to-local asynchronous transactions, a shortcut is implemented to
handle the relevant packets in the request initiator's context instead of
queueing them to the hardware. This may seem beneficial since the
transaction completes immediately within the software stack.
However, this has the drawback that the context in which the callback
handler is invoked is unspecified, as it runs in the initiator's context.
This makes it difficult to implement the callback handlers, especially
address handlers.
This patchset addresses this issue by using a workqueue. All packet
callbacks are now invoked in process context.
Takashi Sakamoto (5):
firewire: ohci: use workqueue to handle error case of AT
request/response packet queueing
firewire: ohci: use workqueue to handle local AT request/response
packets
firewire: ohci: refactor branches in at_context_transmit()
firewire: core: use spinlock without irqsave for card split_timeout
member
firewire: core: use spinlock without irqsave for card topology_map
member
drivers/firewire/core-card.c | 7 +-
drivers/firewire/core-transaction.c | 22 ++---
drivers/firewire/ohci.c | 119 ++++++++++++++++++++++------
include/linux/firewire.h | 5 +-
4 files changed, 107 insertions(+), 46 deletions(-)
base-commit: a20545fbf9226591017fc371bdfb1bfd490b0e0b
--
2.53.0