aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/firewire/core-cdev.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/drivers/firewire/core-cdev.c b/drivers/firewire/core-cdev.c
index ce8cb6fcbbcd..8cbc2b8a8272 100644
--- a/drivers/firewire/core-cdev.c
+++ b/drivers/firewire/core-cdev.c
@@ -106,6 +106,7 @@ struct outbound_transaction_resource {
106 106
107struct inbound_transaction_resource { 107struct inbound_transaction_resource {
108 struct client_resource resource; 108 struct client_resource resource;
109 struct fw_card *card;
109 struct fw_request *request; 110 struct fw_request *request;
110 void *data; 111 void *data;
111 size_t length; 112 size_t length;
@@ -625,8 +626,7 @@ static void release_request(struct client *client,
625 if (is_fcp_request(r->request)) 626 if (is_fcp_request(r->request))
626 kfree(r->data); 627 kfree(r->data);
627 else 628 else
628 fw_send_response(client->device->card, r->request, 629 fw_send_response(r->card, r->request, RCODE_CONFLICT_ERROR);
629 RCODE_CONFLICT_ERROR);
630 kfree(r); 630 kfree(r);
631} 631}
632 632
@@ -646,6 +646,7 @@ static void handle_request(struct fw_card *card, struct fw_request *request,
646 if (r == NULL || e == NULL) 646 if (r == NULL || e == NULL)
647 goto failed; 647 goto failed;
648 648
649 r->card = card;
649 r->request = request; 650 r->request = request;
650 r->data = payload; 651 r->data = payload;
651 r->length = length; 652 r->length = length;
@@ -765,7 +766,7 @@ static int ioctl_send_response(struct client *client, union ioctl_arg *arg)
765 kfree(r->request); 766 kfree(r->request);
766 goto out; 767 goto out;
767 } 768 }
768 fw_send_response(client->device->card, r->request, a->rcode); 769 fw_send_response(r->card, r->request, a->rcode);
769 out: 770 out:
770 kfree(r); 771 kfree(r);
771 772