summaryrefslogtreecommitdiffstats
path: root/drivers/firewire
diff options
context:
space:
mode:
authorPeter Hurley <phurley@charter.net>2010-04-24 01:27:25 +0200
committerStefan Richter <stefanr@s5r6.in-berlin.de>2010-05-19 00:06:47 +0200
commit753a8970f68594ea69c5fc13fbca18dbd9402996 (patch)
treebcfc7ea1cd5264446cee9653f65bef529da4d3cc /drivers/firewire
parentfirewire: core: make transaction label allocation more robust (diff)
downloadlinux-753a8970f68594ea69c5fc13fbca18dbd9402996.tar.xz
linux-753a8970f68594ea69c5fc13fbca18dbd9402996.zip
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')
-rw-r--r--drivers/firewire/core-transaction.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/firewire/core-transaction.c b/drivers/firewire/core-transaction.c
index 9882240205cd..901669876c25 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)
list_for_each_entry(t, &card->transaction_list, link) {
if (t->node_id == source && t->tlabel == tlabel) {
list_del(&t->link);
- card->tlabel_mask &= ~(1 << t->tlabel);
+ card->tlabel_mask &= ~(1ULL << t->tlabel);
break;
}
}