summaryrefslogtreecommitdiff
path: root/include/linux
diff options
context:
space:
mode:
authorTakashi Sakamoto <o-takashi@sakamocchi.jp>2026-09-19 20:50:13 +0900
committerTakashi Sakamoto <o-takashi@sakamocchi.jp>2026-09-19 20:50:13 +0900
commit5fe52c6aa28e0059cbddbd71eaf887948d98c311 (patch)
treeb706bfc13756cb2e7c0cda421fa80cf98a366f75 /include/linux
parent5b671ed29a83925d60f61200be10b3ea952e6a7f (diff)
downloadlinux-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.h3
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