mirror of https://github.com/torvalds/linux.git
For previous version, it uses 'sg_table.nent's to traverse sg_table in pages
free flow.
However, 'sg_table.nents' is reassigned in 'dma_map_sg', it means the number of
created entries in the DMA adderess space.
So, use 'sg_table.nents' in pages free flow will case some pages can't be freed.
Here we should use sg_table.orig_nents to free pages memory, but use the
sgtable helper 'for each_sgtable_sg'(, instead of the previous rather common
helper 'for_each_sg' which maybe cause memory leak) is much better.
Fixes:
|
||
|---|---|---|
| .. | ||
| heaps | ||
| Kconfig | ||
| Makefile | ||
| dma-buf-sysfs-stats.c | ||
| dma-buf-sysfs-stats.h | ||
| dma-buf.c | ||
| dma-fence-array.c | ||
| dma-fence-chain.c | ||
| dma-fence.c | ||
| dma-heap.c | ||
| dma-resv.c | ||
| selftest.c | ||
| selftest.h | ||
| selftests.h | ||
| st-dma-fence-chain.c | ||
| st-dma-fence.c | ||
| sw_sync.c | ||
| sync_debug.c | ||
| sync_debug.h | ||
| sync_file.c | ||
| sync_trace.h | ||
| udmabuf.c | ||