diff options
| author | Raghuram Subramani <raghus2247@gmail.com> | 2024-10-13 13:36:36 +0530 |
|---|---|---|
| committer | Raghuram Subramani <raghus2247@gmail.com> | 2024-10-13 13:36:36 +0530 |
| commit | 6a21d8496b038d1e71fd6a9bd8a95880135665d9 (patch) | |
| tree | 8f96e9273400c0eb8794f92aef733bb5fe52b658 /drivers/gpu/msm/kgsl_sharedmem.c | |
| parent | b73f506bc0ae7119f5f629b222596a27d7b2e99b (diff) | |
| parent | 17d850f5a5bc1318b67a974b16d32a2dd3bab5cf (diff) | |
Merge remote-tracking branch 'msm8998/lineage-20'master
Diffstat (limited to 'drivers/gpu/msm/kgsl_sharedmem.c')
| -rw-r--r-- | drivers/gpu/msm/kgsl_sharedmem.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/gpu/msm/kgsl_sharedmem.c b/drivers/gpu/msm/kgsl_sharedmem.c index dfbea53c306b..39039b27d0e0 100644 --- a/drivers/gpu/msm/kgsl_sharedmem.c +++ b/drivers/gpu/msm/kgsl_sharedmem.c @@ -1,4 +1,5 @@ /* Copyright (c) 2002,2007-2017,2020-2021, The Linux Foundation. All rights reserved. + * Copyright (c) 2023-2024, Qualcomm Innovation Center, Inc. All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 and @@ -407,6 +408,9 @@ done: static void kgsl_page_alloc_free(struct kgsl_memdesc *memdesc) { + if (memdesc->priv & KGSL_MEMDESC_MAPPED) + return; + kgsl_page_alloc_unmap_kernel(memdesc); /* we certainly do not expect the hostptr to still be mapped */ BUG_ON(memdesc->hostptr); @@ -510,6 +514,9 @@ static void kgsl_cma_coherent_free(struct kgsl_memdesc *memdesc) { struct dma_attrs *attrs = NULL; + if (memdesc->priv & KGSL_MEMDESC_MAPPED) + return; + if (memdesc->hostptr) { if (memdesc->priv & KGSL_MEMDESC_SECURE) { atomic_long_sub(memdesc->size, @@ -874,6 +881,7 @@ void kgsl_sharedmem_free(struct kgsl_memdesc *memdesc) if (memdesc->sgt) { sg_free_table(memdesc->sgt); kfree(memdesc->sgt); + memdesc->sgt = NULL; } if (memdesc->pages) |
