aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/firewire/fw-transaction.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/drivers/firewire/fw-transaction.c b/drivers/firewire/fw-transaction.c
index 40db80752272..7addfb3b070b 100644
--- a/drivers/firewire/fw-transaction.c
+++ b/drivers/firewire/fw-transaction.c
@@ -279,11 +279,6 @@ fw_send_request(struct fw_card *card, struct fw_transaction *t,
279 card->current_tlabel = (card->current_tlabel + 1) & 0x1f; 279 card->current_tlabel = (card->current_tlabel + 1) & 0x1f;
280 card->tlabel_mask |= (1 << tlabel); 280 card->tlabel_mask |= (1 << tlabel);
281 281
282 list_add_tail(&t->link, &card->transaction_list);
283
284 spin_unlock_irqrestore(&card->lock, flags);
285
286 /* Initialize rest of transaction, fill out packet and send it. */
287 t->node_id = node_id; 282 t->node_id = node_id;
288 t->tlabel = tlabel; 283 t->tlabel = tlabel;
289 t->callback = callback; 284 t->callback = callback;
@@ -294,6 +289,10 @@ fw_send_request(struct fw_card *card, struct fw_transaction *t,
294 speed, offset, payload, length); 289 speed, offset, payload, length);
295 t->packet.callback = transmit_complete_callback; 290 t->packet.callback = transmit_complete_callback;
296 291
292 list_add_tail(&t->link, &card->transaction_list);
293
294 spin_unlock_irqrestore(&card->lock, flags);
295
297 card->driver->send_request(card, &t->packet); 296 card->driver->send_request(card, &t->packet);
298} 297}
299EXPORT_SYMBOL(fw_send_request); 298EXPORT_SYMBOL(fw_send_request);