Re: [PATCH v2 0/5] firewire: core/ohci: defer cancellation callbacks to workqueue

From: Takashi Sakamoto

Date: Thu Oct 08 2026 - 17:53:46 EST


On Wed, Oct 07, 2026 at 06:32:30PM +0900, Takashi Sakamoto wrote:
> Hi,
>
> This series is take 2 of the previous one[1].
>
> The current implementation invokes both packet and transaction callbacks
> from a workqueue when they complete normally[2][3]. In contrast, the
> cancellation paths invoke the callbacks synchronously while cancelling
> them.
>
> Although the cancellation paths are guaranteed to run in process context,
> invoking the callbacks synchronously is undesirable because it makes
> callback execution depends on the context in which cancellation is
> executed.
>
> This series defers the callbacks to a workqueue when cancelling the
> packets and transactions, so that callbacks are invoked from a workqueue
> in both normal completion and cancellation paths.
>
> This also allows local AT packets to be cancelled. Local packets currently
> use a separate path and cannot be cancelled once queued. Make them use
> the same cancellation mechanism as remote packets.
>
> Changes from v1:
> * Use prefixed local variable in the issued macro
>
> [1] [PATCH 0/5] firewire: core/ohci: defer cancellation callbacks to workqueue
> https://lore.kernel.org/lkml/20261005112544.240552-1-o-takashi@xxxxxxxxxxxxx/
> [2] [PATCH 0/5] firewire: ohci: invoke all AT packet callbacks from a workqueue
> https://lore.kernel.org/lkml/20260919115017.859169-1-o-takashi@xxxxxxxxxxxxx/
> [3] [PATCH 0/3] firewire: core: invoke transaction callbacks in process context
> https://lore.kernel.org/lkml/20260921031931.287429-1-o-takashi@xxxxxxxxxxxxx/
>
> Takashi Sakamoto (5):
> firewire: core: expand close_transaction() into its callers and remove
> it
> firewire: ohci: schedule callback on workqueue when cancelling AT
> request packet
> firewire: ohci: allow AT local packet cancellation
> firewire: core: schedule callback when cancelling pending transactions
> firewire: core: fulfill kerneldoc for fw_cancel_transaction()
>
> drivers/firewire/core-transaction.c | 101 ++++++++++++++--------------
> drivers/firewire/ohci.c | 57 ++++++++++++----
> 2 files changed, 93 insertions(+), 65 deletions(-)

Applied fo for-next branch.


Regards

Takashi Sakamoto