Re: [PATCH 0/5] firewire: ohci: invoke all AT packet callbacks from a workqueue

From: Takashi Sakamoto

Date: Sun Sep 20 2026 - 03:26:06 EST


On Sat, Sep 19, 2026 at 08:50:12PM +0900, Takashi Sakamoto wrote:
> 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(-)

Applied to for-next branch.


Regards

Takashi Sakamoto