staging: gasket: fix free in gasket_free_coherent_memory_all

Actually free gasket_coherent_page_entries and just call
gasket_free_coherent_memory_all from gasket_free_coherent_memory.

Change-Id: I1d016abd5f66e0620a37f6851e43fcfd6c96868a
Signed-off-by: Nick Ewalt <nicholasewalt@google.com>
This commit is contained in:
Nick Ewalt
2018-10-11 14:56:39 -07:00
committed by Leonid Lobachev
parent 83d87f28f8
commit ad4c9a5893

View File

@@ -1344,15 +1344,8 @@ int gasket_free_coherent_memory(struct gasket_dev *gasket_dev, u64 size,
if (driver_desc->coherent_buffer_description.base != dma_address)
return -EADDRNOTAVAIL;
if (gasket_dev->coherent_buffer.length_bytes) {
dma_free_coherent(gasket_get_device(gasket_dev),
gasket_dev->coherent_buffer.length_bytes,
gasket_dev->coherent_buffer.virt_base,
gasket_dev->coherent_buffer.phys_base);
gasket_dev->coherent_buffer.length_bytes = 0;
gasket_dev->coherent_buffer.virt_base = NULL;
gasket_dev->coherent_buffer.phys_base = 0;
}
gasket_free_coherent_memory_all(gasket_dev, index);
return 0;
}
@@ -1372,4 +1365,8 @@ void gasket_free_coherent_memory_all(
gasket_dev->coherent_buffer.virt_base = NULL;
gasket_dev->coherent_buffer.phys_base = 0;
}
kfree(gasket_dev->page_table[index]->coherent_pages);
gasket_dev->page_table[index]->coherent_pages = NULL;
gasket_dev->page_table[index]->num_coherent_pages = 0;
}