diff options
author | Stefan Richter <stefanr@s5r6.in-berlin.de> | 2008-12-10 00:20:38 +0100 |
---|---|---|
committer | Stefan Richter <stefanr@s5r6.in-berlin.de> | 2008-12-10 12:45:34 +0100 |
commit | 1d1dc5e83f3299c108a4e44d58cc4bfef48c876a (patch) | |
tree | 4acec6d605d2c04294afa8d5a7699430c34e8449 /drivers/firewire/fw-transaction.c | |
parent | ec9a13cdbfc8cf29502096ca69b65f07184a9b2c (diff) | |
download | lwn-1d1dc5e83f3299c108a4e44d58cc4bfef48c876a.tar.gz lwn-1d1dc5e83f3299c108a4e44d58cc4bfef48c876a.zip |
firewire: fw-ohci: fix IOMMU resource exhaustion
There is a DMA map/ unmap imbalance whenever a block write request
packet is sent and then dequeued with ohci_cancel_packet. The latter
may happen frequently if the AR resp tasklet is executed before the AT
req tasklet for the same transaction.
Add the missing dma_unmap_single. This fixes
https://bugzilla.redhat.com/show_bug.cgi?id=475156
Reported-by: Emmanuel Kowalski
Tested-by: Emmanuel Kowalski
Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
Diffstat (limited to 'drivers/firewire/fw-transaction.c')
-rw-r--r-- | drivers/firewire/fw-transaction.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/firewire/fw-transaction.c b/drivers/firewire/fw-transaction.c index 022ac4fabb67..2884f876397b 100644 --- a/drivers/firewire/fw-transaction.c +++ b/drivers/firewire/fw-transaction.c @@ -207,6 +207,7 @@ fw_fill_request(struct fw_packet *packet, int tcode, int tlabel, packet->speed = speed; packet->generation = generation; packet->ack = 0; + packet->payload_bus = 0; } /** @@ -581,6 +582,8 @@ fw_fill_response(struct fw_packet *response, u32 *request_header, BUG(); return; } + + response->payload_bus = 0; } EXPORT_SYMBOL(fw_fill_response); |