From: Peter Hurley Date: Fri, 23 Apr 2010 23:27:25 +0000 (-0400) Subject: firewire: core: Fix tlabel exhaustion problem X-Git-Url: http://git.cdn.openwrt.org/?a=commitdiff_plain;h=753a8970f68594ea69c5fc13fbca18dbd9402996;p=openwrt%2Fstaging%2Fblogic.git 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 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 --- 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; } }