diff options
author | Peter Hurley <phurley@charter.net> | 2010-04-23 19:27:25 -0400 |
---|---|---|
committer | Stefan Richter <stefanr@s5r6.in-berlin.de> | 2010-05-18 18:06:47 -0400 |
commit | 753a8970f68594ea69c5fc13fbca18dbd9402996 (patch) | |
tree | bcfc7ea1cd5264446cee9653f65bef529da4d3cc /drivers/firewire/core-transaction.c | |
parent | 7906054f0d597246178b3154adca76de29913aa5 (diff) |
firewire: core: Fix tlabel exhaustion problem
fw_core_handle_response() was not properly clearing tlabel_mask. This
was resulting in premature tlabel exhaustion.
Signed-off-by: Peter Hurley <phurley@charter.net>
This fixes an omission in 2.6.31-rc1 commit 1e626fdc "firewire: core:
use more outbound tlabels" which prevented to really use 64 instead of
32 transaction labels, as soon as split transactions occurred that had
their AR-resp tasklet run after the AT-req tasklet.
Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
Diffstat (limited to 'drivers/firewire/core-transaction.c')
-rw-r--r-- | drivers/firewire/core-transaction.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/firewire/core-transaction.c b/drivers/firewire/core-transaction.c index 9882240205c..901669876c2 100644 --- a/drivers/firewire/core-transaction.c +++ b/drivers/firewire/core-transaction.c | |||
@@ -842,7 +842,7 @@ void fw_core_handle_response(struct fw_card *card, struct fw_packet *p) | |||
842 | list_for_each_entry(t, &card->transaction_list, link) { | 842 | list_for_each_entry(t, &card->transaction_list, link) { |
843 | if (t->node_id == source && t->tlabel == tlabel) { | 843 | if (t->node_id == source && t->tlabel == tlabel) { |
844 | list_del(&t->link); | 844 | list_del(&t->link); |
845 | card->tlabel_mask &= ~(1 << t->tlabel); | 845 | card->tlabel_mask &= ~(1ULL << t->tlabel); |
846 | break; | 846 | break; |
847 | } | 847 | } |
848 | } | 848 | } |