aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/firewire/fw-ohci.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/firewire/fw-ohci.c')
-rw-r--r--drivers/firewire/fw-ohci.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/drivers/firewire/fw-ohci.c b/drivers/firewire/fw-ohci.c
index 9e8a8f909303..a9e13468f60c 100644
--- a/drivers/firewire/fw-ohci.c
+++ b/drivers/firewire/fw-ohci.c
@@ -813,8 +813,10 @@ handle_local_request(struct context *ctx, struct fw_packet *packet)
813 u64 offset; 813 u64 offset;
814 u32 csr; 814 u32 csr;
815 815
816 packet->ack = ACK_PENDING; 816 if (ctx == &ctx->ohci->at_request_ctx) {
817 packet->callback(packet, &ctx->ohci->card, packet->ack); 817 packet->ack = ACK_PENDING;
818 packet->callback(packet, &ctx->ohci->card, packet->ack);
819 }
818 820
819 offset = 821 offset =
820 ((unsigned long long) 822 ((unsigned long long)
@@ -839,6 +841,11 @@ handle_local_request(struct context *ctx, struct fw_packet *packet)
839 fw_core_handle_response(&ctx->ohci->card, packet); 841 fw_core_handle_response(&ctx->ohci->card, packet);
840 break; 842 break;
841 } 843 }
844
845 if (ctx == &ctx->ohci->at_response_ctx) {
846 packet->ack = ACK_COMPLETE;
847 packet->callback(packet, &ctx->ohci->card, packet->ack);
848 }
842} 849}
843 850
844static void 851static void