diff options
author | Clemens Ladisch <clemens@ladisch.de> | 2010-04-27 09:07:00 +0200 |
---|---|---|
committer | Stefan Richter <stefanr@s5r6.in-berlin.de> | 2010-05-19 00:26:30 +0200 |
commit | 5c40cbfefa828208c671e2f58789e4dd04f79563 (patch) | |
tree | aa7c38eb0c9e19ee0153a1764b24c67abaf5746d /include | |
parent | 753a8970f68594ea69c5fc13fbca18dbd9402996 (diff) | |
download | op-kernel-dev-5c40cbfefa828208c671e2f58789e4dd04f79563.zip op-kernel-dev-5c40cbfefa828208c671e2f58789e4dd04f79563.tar.gz |
firewire: core: use separate timeout for each transaction
Using a single timeout for all transaction that need to be flushed does
not work if the submission of new transactions can defer the timeout
indefinitely into the future. We need to have timeouts that do not
change due to other transactions; the simplest way to do this is with a
separate timer for each transaction.
Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de> (+ one lockdep annotation)
Diffstat (limited to 'include')
-rw-r--r-- | include/linux/firewire.h | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/include/linux/firewire.h b/include/linux/firewire.h index a527d73..72e2b8a 100644 --- a/include/linux/firewire.h +++ b/include/linux/firewire.h @@ -87,7 +87,6 @@ struct fw_card { int current_tlabel; u64 tlabel_mask; struct list_head transaction_list; - struct timer_list flush_timer; unsigned long reset_jiffies; unsigned long long guid; @@ -288,6 +287,8 @@ struct fw_transaction { int tlabel; int timestamp; struct list_head link; + struct fw_card *card; + struct timer_list split_timeout_timer; struct fw_packet packet; |