diff options
| author | Takashi Sakamoto <o-takashi@sakamocchi.jp> | 2026-09-19 20:50:13 +0900 |
|---|---|---|
| committer | Takashi Sakamoto <o-takashi@sakamocchi.jp> | 2026-09-19 20:50:13 +0900 |
| commit | 5fe52c6aa28e0059cbddbd71eaf887948d98c311 (patch) | |
| tree | b706bfc13756cb2e7c0cda421fa80cf98a366f75 /include/linux | |
| parent | 5b671ed29a83925d60f61200be10b3ea952e6a7f (diff) | |
| download | linux-5fe52c6aa28e0059cbddbd71eaf887948d98c311.tar.gz linux-5fe52c6aa28e0059cbddbd71eaf887948d98c311.zip | |
firewire: ohci: use workqueue to handle error case of AT request/response packet queueing
When a packet cannot be queued to an AT context, the packet callback is
invoked to report the error to the caller. Since the callback runs in the
caller's context, its execution context depends on where the packet was
submitted. This makes the callback context inconsistent between
successful and failed subactions.
Use a workqueue to handle the error cases.
Link: https://lore.kernel.org/r/20260919115017.859169-2-o-takashi@sakamocchi.jp
Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
Diffstat (limited to 'include/linux')
| -rw-r--r-- | include/linux/firewire.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/include/linux/firewire.h b/include/linux/firewire.h index cbe59a18162e..1c71ff69c42f 100644 --- a/include/linux/firewire.h +++ b/include/linux/firewire.h @@ -329,6 +329,9 @@ struct fw_packet { bool payload_mapped; u32 timestamp; + // Used to handle the local-to-local packets in the AT request/response contexts. + struct list_head link_for_local; + /* * This callback is called when the packet transmission has completed. * For successful transmission, the status code is the ack received |
