From c801746d9c54a23e1dc8fc7a876b6a40e997c798 Mon Sep 17 00:00:00 2001 From: Charan Teja Reddy Date: Thu, 13 Feb 2020 13:51:41 +0530 Subject: [PATCH] ion: don't call free_buffer_page on failure of ion_hyp_unassign_sg As we don't know the state of pages after failure from ion_hyp_unassign_sg, don't try to free them to buddy or pool. Change-Id: I54113ef13e25818301bdbe033468070b15cefa55 Signed-off-by: Charan Teja Reddy [isaacm@codeaurora.org: resolved trivial merge conflicts] Signed-off-by: Isaac J. Manjarres --- drivers/staging/android/ion/heaps/ion_system_heap.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/staging/android/ion/heaps/ion_system_heap.c b/drivers/staging/android/ion/heaps/ion_system_heap.c index a4034bb31fb9..4885702f5d16 100644 --- a/drivers/staging/android/ion/heaps/ion_system_heap.c +++ b/drivers/staging/android/ion/heaps/ion_system_heap.c @@ -390,11 +390,13 @@ err_free_sg2: buffer->private_flags |= ION_PRIV_FLAG_SHRINKER_FREE; if (vmid > 0) - ion_hyp_unassign_sg(table, &vmid, 1, true); + if (ion_hyp_unassign_sg(table, &vmid, 1, true)) + goto err_free_table_sync; for_each_sg(table->sgl, sg, table->nents, i) free_buffer_page(sys_heap, buffer, sg_page(sg), get_order(sg->length)); +err_free_table_sync: if (nents_sync) sg_free_table(&table_sync); err_free_sg: