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

staging: gasket: page_table: don't unmap coherent pages

Only call dma_unmap_page if there was an associated dma_map_page call.

Signed-off-by: Nick Ewalt <nicholasewalt@google.com>
Signed-off-by: Todd Poynor <toddpoynor@google.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Nick Ewalt 7 жил өмнө
parent
commit
f8b6a07661

+ 1 - 1
drivers/staging/gasket/gasket_page_table.c

@@ -610,7 +610,7 @@ static void gasket_perform_unmapping(struct gasket_page_table *pg_tbl,
 
 
 		/* release the address from the driver, */
 		/* release the address from the driver, */
 		if (ptes[i].status == PTE_INUSE) {
 		if (ptes[i].status == PTE_INUSE) {
-			if (ptes[i].dma_addr) {
+			if (ptes[i].page && ptes[i].dma_addr) {
 				dma_unmap_page(pg_tbl->device, ptes[i].dma_addr,
 				dma_unmap_page(pg_tbl->device, ptes[i].dma_addr,
 					       PAGE_SIZE, DMA_BIDIRECTIONAL);
 					       PAGE_SIZE, DMA_BIDIRECTIONAL);
 			}
 			}