Re: [PATCH v3 2/4] mm: move is_kernel_rodata() to asm-generic/sections.h

From: Mike Rapoport
Date: Mon Sep 24 2018 - 06:32:07 EST


On Mon, Sep 24, 2018 at 12:11:48PM +0200, Bartosz Golaszewski wrote:
> Export this routine so that we can use it later in devm_kstrdup_const()
> and devm_kfree_const().
>
> Signed-off-by: Bartosz Golaszewski <brgl@xxxxxxxx>
> Reviewed-by: Bjorn Andersson <bjorn.andersson@xxxxxxxxxx>

Acked-by: Mike Rapoport <rppt@xxxxxxxxxxxxxxxxxx>

> ---
> include/asm-generic/sections.h | 14 ++++++++++++++
> mm/util.c | 7 -------
> 2 files changed, 14 insertions(+), 7 deletions(-)
>
> diff --git a/include/asm-generic/sections.h b/include/asm-generic/sections.h
> index 849cd8eb5ca0..d79abca81a52 100644
> --- a/include/asm-generic/sections.h
> +++ b/include/asm-generic/sections.h
> @@ -141,4 +141,18 @@ static inline bool init_section_intersects(void *virt, size_t size)
> return memory_intersects(__init_begin, __init_end, virt, size);
> }
>
> +/**
> + * is_kernel_rodata - checks if the pointer address is located in the
> + * .rodata section
> + *
> + * @addr: address to check
> + *
> + * Returns: true if the address is located in .rodata, false otherwise.
> + */
> +static inline bool is_kernel_rodata(unsigned long addr)
> +{
> + return addr >= (unsigned long)__start_rodata &&
> + addr < (unsigned long)__end_rodata;
> +}
> +
> #endif /* _ASM_GENERIC_SECTIONS_H_ */
> diff --git a/mm/util.c b/mm/util.c
> index 9e3ebd2ef65f..470f5cd80b64 100644
> --- a/mm/util.c
> +++ b/mm/util.c
> @@ -15,17 +15,10 @@
> #include <linux/vmalloc.h>
> #include <linux/userfaultfd_k.h>
>
> -#include <asm/sections.h>
> #include <linux/uaccess.h>
>
> #include "internal.h"
>
> -static inline int is_kernel_rodata(unsigned long addr)
> -{
> - return addr >= (unsigned long)__start_rodata &&
> - addr < (unsigned long)__end_rodata;
> -}
> -
> /**
> * kfree_const - conditionally free memory
> * @x: pointer to the memory
> --
> 2.18.0
>

--
Sincerely yours,
Mike.