diff options
| author | Takashi Sakamoto <o-takashi@sakamocchi.jp> | 2025-09-16 08:47:46 +0900 |
|---|---|---|
| committer | Takashi Sakamoto <o-takashi@sakamocchi.jp> | 2025-09-16 08:52:19 +0900 |
| commit | b5725cfa4120a4d234ab112aad151d731531d093 (patch) | |
| tree | 3d77f8b435b6b96c202405a345644543431f1491 /include | |
| parent | firewire: core: use spin lock specific to transaction (diff) | |
| download | linux-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.h | 15 |
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; |
