2021-01-03 06:42:09

by Lecopzer Chen

[permalink] [raw]
Subject: [PATCH] kasan: fix incorrect arguments passing in kasan_add_zero_shadow

kasan_remove_zero_shadow() shall use original virtual address, start
and size, instead of shadow address.

Fixes: 0207df4fa1a86 ("kernel/memremap, kasan: make ZONE_DEVICE with work with KASAN")
Signed-off-by: Lecopzer Chen <[email protected]>
---
mm/kasan/init.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/mm/kasan/init.c b/mm/kasan/init.c
index bc0ad208b3a7..67051cfae41c 100644
--- a/mm/kasan/init.c
+++ b/mm/kasan/init.c
@@ -481,7 +481,6 @@ int kasan_add_zero_shadow(void *start, unsigned long size)

ret = kasan_populate_early_shadow(shadow_start, shadow_end);
if (ret)
- kasan_remove_zero_shadow(shadow_start,
- size >> KASAN_SHADOW_SCALE_SHIFT);
+ kasan_remove_zero_shadow(start, size);
return ret;
}
--
2.25.1


2021-01-08 18:28:01

by Andrey Konovalov

[permalink] [raw]
Subject: Re: [PATCH] kasan: fix incorrect arguments passing in kasan_add_zero_shadow

On Sun, Jan 3, 2021 at 7:39 AM Lecopzer Chen <[email protected]> wrote:
>
> kasan_remove_zero_shadow() shall use original virtual address, start
> and size, instead of shadow address.
>
> Fixes: 0207df4fa1a86 ("kernel/memremap, kasan: make ZONE_DEVICE with work with KASAN")
> Signed-off-by: Lecopzer Chen <[email protected]>
> ---
> mm/kasan/init.c | 3 +--
> 1 file changed, 1 insertion(+), 2 deletions(-)
>
> diff --git a/mm/kasan/init.c b/mm/kasan/init.c
> index bc0ad208b3a7..67051cfae41c 100644
> --- a/mm/kasan/init.c
> +++ b/mm/kasan/init.c
> @@ -481,7 +481,6 @@ int kasan_add_zero_shadow(void *start, unsigned long size)
>
> ret = kasan_populate_early_shadow(shadow_start, shadow_end);
> if (ret)
> - kasan_remove_zero_shadow(shadow_start,
> - size >> KASAN_SHADOW_SCALE_SHIFT);
> + kasan_remove_zero_shadow(start, size);
> return ret;
> }
> --
> 2.25.1

Reviewed-by: Andrey Konovalov <[email protected]>