summaryrefslogtreecommitdiff
path: root/include/linux
diff options
context:
space:
mode:
authorTakashi Sakamoto <o-takashi@sakamocchi.jp>2025-09-16 08:47:45 +0900
committerTakashi Sakamoto <o-takashi@sakamocchi.jp>2025-09-16 08:52:18 +0900
commit420bd7068cbfaea0a857472dd631dc48311e2a8f (patch)
tree893afa5e0ce02a1a1b7e1082711a8e2792948b6d /include/linux
parent7d138cb269dbd2fa9b0da89a9c10503d1cf269d5 (diff)
firewire: core: use spin lock specific to transaction
The list of instance for asynchronous transaction to wait for response subaction is maintained as a member of fw_card structure. The card-wide spinlock is used at present for any operation over the list, however it is not necessarily suited for the purpose. This commit adds and uses the spin lock specific to maintain the list. Link: https://lore.kernel.org/r/20250915234747.915922-5-o-takashi@sakamocchi.jp Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
Diffstat (limited to 'include/linux')
-rw-r--r--include/linux/firewire.h10
1 files changed, 7 insertions, 3 deletions
diff --git a/include/linux/firewire.h b/include/linux/firewire.h
index aeb71c39e57e..8d6801cf2fca 100644
--- a/include/linux/firewire.h
+++ b/include/linux/firewire.h
@@ -88,11 +88,15 @@ struct fw_card {
int node_id;
int generation;
- int current_tlabel;
- u64 tlabel_mask;
- struct list_head transaction_list;
u64 reset_jiffies;
+ struct {
+ int current_tlabel;
+ u64 tlabel_mask;
+ struct list_head list;
+ spinlock_t lock;
+ } transactions;
+
u32 split_timeout_hi;
u32 split_timeout_lo;
unsigned int split_timeout_cycles;