diff options
Diffstat (limited to 'drivers/firewire/fw-ohci.c')
-rw-r--r-- | drivers/firewire/fw-ohci.c | 11 |
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 | ||
844 | static void | 851 | static void |