aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorTakashi Sakamoto <o-takashi@sakamocchi.jp>2025-09-16 08:47:46 +0900
committerTakashi Sakamoto <o-takashi@sakamocchi.jp>2025-09-16 08:52:19 +0900
commitb5725cfa4120a4d234ab112aad151d731531d093 (patch)
tree3d77f8b435b6b96c202405a345644543431f1491 /include
parentfirewire: core: use spin lock specific to transaction (diff)
downloadlinux-b5725cfa4120a4d234ab112aad151d731531d093.tar.gz
linux-b5725cfa4120a4d234ab112aad151d731531d093.zip
firewire: core: use spin lock specific to timer for split transaction
At present the parameters to compute timeout time for split transaction is protected by card-wide spin lock, while it is not necessarily convenient in a point to narrower critical section. This commit adds and uses another spin lock specific for the purpose. Link: https://lore.kernel.org/r/20250915234747.915922-6-o-takashi@sakamocchi.jp Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
Diffstat (limited to 'include')
-rw-r--r--include/linux/firewire.h15
1 files changed, 9 insertions, 6 deletions
diff --git a/include/linux/firewire.h b/include/linux/firewire.h
index 8d6801cf2fca..6d208769d456 100644
--- a/include/linux/firewire.h
+++ b/include/linux/firewire.h
@@ -97,18 +97,21 @@ struct fw_card {
spinlock_t lock;
} transactions;
- u32 split_timeout_hi;
- u32 split_timeout_lo;
- unsigned int split_timeout_cycles;
- unsigned int split_timeout_jiffies;
+ struct {
+ u32 hi;
+ u32 lo;
+ unsigned int cycles;
+ unsigned int jiffies;
+ spinlock_t lock;
+ } split_timeout;
unsigned long long guid;
unsigned max_receive;
int link_speed;
int config_rom_generation;
- spinlock_t lock; /* Take this lock when handling the lists in
- * this struct. */
+ spinlock_t lock;
+
struct fw_node *local_node;
struct fw_node *root_node;
struct fw_node *irm_node;