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

From: Bjorn Andersson
Date: Thu Sep 20 2018 - 12:34:39 EST


On Tue 28 Aug 02:33 PDT 2018, Bartosz Golaszewski wrote:

> Export this routine so that we can use it later in devm_kstrdup_const()
> and devm_kfree_const().
>

Reviewed-by: Bjorn Andersson <bjorn.andersson@xxxxxxxxxx>

Regards,
Bjorn

> Signed-off-by: Bartosz Golaszewski <brgl@xxxxxxxx>
> ---
> 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 d2890a407332..41e9892a50ce 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
>