[PATCH] mm/memremap: avoid calling kasan_remove_zero_shadow() for device private memory

Miaohe Lin posted 1 patch 4 years, 5 months ago
mm/memremap.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
[PATCH] mm/memremap: avoid calling kasan_remove_zero_shadow() for device private memory
Posted by Miaohe Lin 4 years, 5 months ago
For device private memory, we do not create a linear mapping for the memory
because the device memory is un-accessible. Thus we do not add kasan zero
shadow for it. So it's unnecessary to do kasan_remove_zero_shadow() for it.

Signed-off-by: Miaohe Lin <linmiaohe@huawei.com>
---
 mm/memremap.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/mm/memremap.c b/mm/memremap.c
index d2a72cf2ff83..d9e05952fff6 100644
--- a/mm/memremap.c
+++ b/mm/memremap.c
@@ -302,7 +302,8 @@ static int pagemap_range(struct dev_pagemap *pgmap, struct mhp_params *params,
 	return 0;
 
 err_add_memory:
-	kasan_remove_zero_shadow(__va(range->start), range_len(range));
+	if (!is_private)
+		kasan_remove_zero_shadow(__va(range->start), range_len(range));
 err_kasan:
 	untrack_pfn(NULL, PHYS_PFN(range->start), range_len(range));
 err_pfn_remap:
-- 
2.23.0

Re: [PATCH] mm/memremap: avoid calling kasan_remove_zero_shadow() for device private memory
Posted by Muchun Song 4 years, 5 months ago
On Wed, Jan 26, 2022 at 5:27 PM Miaohe Lin <linmiaohe@huawei.com> wrote:
>
> For device private memory, we do not create a linear mapping for the memory
> because the device memory is un-accessible. Thus we do not add kasan zero
> shadow for it. So it's unnecessary to do kasan_remove_zero_shadow() for it.
>
> Signed-off-by: Miaohe Lin <linmiaohe@huawei.com>

Good catch.

Reviewed-by: Muchun Song <songmuchun@bytedance.com>