Эх сурвалжийг харах

firewire: fw-ohci: missing dma_unmap_single

at_context_queue_packet() didn't clean up in an early exit path.

Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
Signed-off-by: Kristian Høgsberg <krh@redhat.com>
Stefan Richter 17 жил өмнө
parent
commit
ab88ca488b

+ 3 - 0
drivers/firewire/fw-ohci.c

@@ -680,6 +680,9 @@ at_context_queue_packet(struct context *ctx, struct fw_packet *packet)
 
 
 	/* FIXME: Document how the locking works. */
 	/* FIXME: Document how the locking works. */
 	if (ohci->generation != packet->generation) {
 	if (ohci->generation != packet->generation) {
+		if (packet->payload_length > 0)
+			dma_unmap_single(ohci->card.device, payload_bus,
+					 packet->payload_length, DMA_TO_DEVICE);
 		packet->ack = RCODE_GENERATION;
 		packet->ack = RCODE_GENERATION;
 		return -1;
 		return -1;
 	}
 	}