On Thu, Nov 25, 2021 at 11:48 PM guangming.cao@mediatek.com wrote:
From: Guangming Guangming.Cao@mediatek.com
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: d963ab0f15fb0 ("dma-buf: system_heap: Allocate higher order pages if available") Signed-off-by: Guangming Guangming.Cao@mediatek.com Reviewed-by: Robin Murphy robin.murphy@arm.com Cc: stable@vger.kernel.org # 5.11.*
Thanks so much for catching this and sending in all the revisions!
Reviewed-by: John Stultz john.stultz@linaro.org