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 <[email protected]>
---
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
On Wed, Jan 26, 2022 at 5:27 PM Miaohe Lin <[email protected]> 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 <[email protected]>
Good catch.
Reviewed-by: Muchun Song <[email protected]>