diff --git a/drivers/staging/android/ion/heaps/ion_carveout_heap.c b/drivers/staging/android/ion/heaps/ion_carveout_heap.c index 7aaef6a9d6c8..53347da25295 100644 --- a/drivers/staging/android/ion/heaps/ion_carveout_heap.c +++ b/drivers/staging/android/ion/heaps/ion_carveout_heap.c @@ -379,6 +379,8 @@ static void ion_sc_heap_free(struct ion_buffer *buffer) return; } + if (hlos_accessible_buffer(buffer)) + ion_buffer_zero(buffer); ion_carveout_free(child, paddr, buffer->size); sg_free_table(table); kfree(table); diff --git a/drivers/staging/android/ion/heaps/ion_system_heap.c b/drivers/staging/android/ion/heaps/ion_system_heap.c index e0cc4bab86b8..6c9bfc8ff4b5 100644 --- a/drivers/staging/android/ion/heaps/ion_system_heap.c +++ b/drivers/staging/android/ion/heaps/ion_system_heap.c @@ -426,7 +426,7 @@ void ion_system_heap_free(struct ion_buffer *buffer) if (!(buffer->private_flags & ION_PRIV_FLAG_SHRINKER_FREE) && !(buffer->flags & ION_FLAG_POOL_FORCE_ALLOC)) { - if (vmid < 0) + if (hlos_accessible_buffer(buffer)) ion_buffer_zero(buffer); } else if (vmid > 0) { if (ion_hyp_unassign_sg(table, &vmid, 1, true))