diff options
| -rw-r--r-- | drivers/firewire/core-transaction.c | 8 | ||||
| -rw-r--r-- | include/linux/firewire.h | 3 |
2 files changed, 6 insertions, 5 deletions
diff --git a/drivers/firewire/core-transaction.c b/drivers/firewire/core-transaction.c index 9a6ce9ab2a67..479b22f5a1eb 100644 --- a/drivers/firewire/core-transaction.c +++ b/drivers/firewire/core-transaction.c | |||
| @@ -82,7 +82,7 @@ static int close_transaction(struct fw_transaction *transaction, | |||
| 82 | list_for_each_entry(t, &card->transaction_list, link) { | 82 | list_for_each_entry(t, &card->transaction_list, link) { |
| 83 | if (t == transaction) { | 83 | if (t == transaction) { |
| 84 | list_del(&t->link); | 84 | list_del(&t->link); |
| 85 | card->tlabel_mask &= ~(1 << t->tlabel); | 85 | card->tlabel_mask &= ~(1ULL << t->tlabel); |
| 86 | break; | 86 | break; |
| 87 | } | 87 | } |
| 88 | } | 88 | } |
| @@ -288,14 +288,14 @@ void fw_send_request(struct fw_card *card, struct fw_transaction *t, int tcode, | |||
| 288 | spin_lock_irqsave(&card->lock, flags); | 288 | spin_lock_irqsave(&card->lock, flags); |
| 289 | 289 | ||
| 290 | tlabel = card->current_tlabel; | 290 | tlabel = card->current_tlabel; |
| 291 | if (card->tlabel_mask & (1 << tlabel)) { | 291 | if (card->tlabel_mask & (1ULL << tlabel)) { |
| 292 | spin_unlock_irqrestore(&card->lock, flags); | 292 | spin_unlock_irqrestore(&card->lock, flags); |
| 293 | callback(card, RCODE_SEND_ERROR, NULL, 0, callback_data); | 293 | callback(card, RCODE_SEND_ERROR, NULL, 0, callback_data); |
| 294 | return; | 294 | return; |
| 295 | } | 295 | } |
| 296 | 296 | ||
| 297 | card->current_tlabel = (card->current_tlabel + 1) & 0x1f; | 297 | card->current_tlabel = (card->current_tlabel + 1) & 0x3f; |
| 298 | card->tlabel_mask |= (1 << tlabel); | 298 | card->tlabel_mask |= (1ULL << tlabel); |
| 299 | 299 | ||
| 300 | t->node_id = destination_id; | 300 | t->node_id = destination_id; |
| 301 | t->tlabel = tlabel; | 301 | t->tlabel = tlabel; |
diff --git a/include/linux/firewire.h b/include/linux/firewire.h index 610eade8abb4..e584b7215e8b 100644 --- a/include/linux/firewire.h +++ b/include/linux/firewire.h | |||
| @@ -98,7 +98,8 @@ struct fw_card { | |||
| 98 | 98 | ||
| 99 | int node_id; | 99 | int node_id; |
| 100 | int generation; | 100 | int generation; |
| 101 | int current_tlabel, tlabel_mask; | 101 | int current_tlabel; |
| 102 | u64 tlabel_mask; | ||
| 102 | struct list_head transaction_list; | 103 | struct list_head transaction_list; |
| 103 | struct timer_list flush_timer; | 104 | struct timer_list flush_timer; |
| 104 | unsigned long reset_jiffies; | 105 | unsigned long reset_jiffies; |
