forked from MIrrors/gasket-driver
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:
committed by
Leonid Lobachev
parent
83d87f28f8
commit
ad4c9a5893
@@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user