[RFC PATCH 1/5] kasan: do not open-code addr_has_shadow

Andrew Donnellan andrew.donnellan at au1.ibm.com
Fri Feb 15 11:12:27 AEDT 2019


On 15/2/19 11:04 am, Daniel Axtens wrote:
> We have a couple of places checking for the existence of a shadow
> mapping for an address by open-coding the inverse of the check in
> addr_has_shadow.
> 
> Replace the open-coded versions with the helper. This will be
> needed in future to allow architectures to override the layout
> of the shadow mapping.
> 
> Signed-off-by: Daniel Axtens <dja at axtens.net>

Reviewed-by: Andrew Donnellan <andrew.donnellan at au1.ibm.com>

> ---
>   mm/kasan/generic.c | 3 +--
>   mm/kasan/tags.c    | 3 +--
>   2 files changed, 2 insertions(+), 4 deletions(-)
> 
> diff --git a/mm/kasan/generic.c b/mm/kasan/generic.c
> index ccb6207276e3..ffc64a9a97a5 100644
> --- a/mm/kasan/generic.c
> +++ b/mm/kasan/generic.c
> @@ -173,8 +173,7 @@ static __always_inline void check_memory_region_inline(unsigned long addr,
>   	if (unlikely(size == 0))
>   		return;
>   
> -	if (unlikely((void *)addr <
> -		kasan_shadow_to_mem((void *)KASAN_SHADOW_START))) {
> +	if (unlikely(!addr_has_shadow((void *)addr))) {
>   		kasan_report(addr, size, write, ret_ip);
>   		return;
>   	}
> diff --git a/mm/kasan/tags.c b/mm/kasan/tags.c
> index 0777649e07c4..bc759f8f1c67 100644
> --- a/mm/kasan/tags.c
> +++ b/mm/kasan/tags.c
> @@ -109,8 +109,7 @@ void check_memory_region(unsigned long addr, size_t size, bool write,
>   		return;
>   
>   	untagged_addr = reset_tag((const void *)addr);
> -	if (unlikely(untagged_addr <
> -			kasan_shadow_to_mem((void *)KASAN_SHADOW_START))) {
> +	if (unlikely(!addr_has_shadow(untagged_addr))) {
>   		kasan_report(addr, size, write, ret_ip);
>   		return;
>   	}
> 

-- 
Andrew Donnellan              OzLabs, ADL Canberra
andrew.donnellan at au1.ibm.com  IBM Australia Limited



More information about the Linuxppc-dev mailing list