From: Andrey Ryabinin <ryabinin.a.a@gmail.com>
To: "Aneesh Kumar K.V" <aneesh.kumar@linux.vnet.ibm.com>
Cc: akpm@linux-foundation.org, linux-mm@kvack.org,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH 2/4] kasan: MODULE_VADDR is not available on all archs
Date: Thu, 3 Sep 2015 11:25:09 +0300 [thread overview]
Message-ID: <55E803E5.10809@gmail.com> (raw)
In-Reply-To: <1441266863-5435-2-git-send-email-aneesh.kumar@linux.vnet.ibm.com>
On 09/03/2015 10:54 AM, Aneesh Kumar K.V wrote:
> Use is_module_text_address instead
>
It should be is_module_address().
We use kernel_or_module_addr() to determine whether this
address belongs to some global variable or not.
And variables are in .data section, .text is only code.
Something like is_module_data_address() would be more precise here.
But since we don't have it, we can just use is_module_address().
Definitely not is_module_text_address().
> Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
> ---
> mm/kasan/report.c | 9 ++++++---
> 1 file changed, 6 insertions(+), 3 deletions(-)
>
> diff --git a/mm/kasan/report.c b/mm/kasan/report.c
> index 6c3f82b0240b..01d2efec8ea4 100644
> --- a/mm/kasan/report.c
> +++ b/mm/kasan/report.c
> @@ -22,6 +22,7 @@
> #include <linux/string.h>
> #include <linux/types.h>
> #include <linux/kasan.h>
> +#include <linux/module.h>
>
> #include <asm/sections.h>
>
> @@ -85,9 +86,11 @@ static void print_error_description(struct kasan_access_info *info)
>
> static inline bool kernel_or_module_addr(const void *addr)
> {
> - return (addr >= (void *)_stext && addr < (void *)_end)
> - || (addr >= (void *)MODULES_VADDR
> - && addr < (void *)MODULES_END);
> + if (addr >= (void *)_stext && addr < (void *)_end)
> + return true;
> + if (is_module_text_address((unsigned long)addr))
> + return true;
> + return false;
> }
>
> static inline bool init_task_stack_addr(const void *addr)
>
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
WARNING: multiple messages have this Message-ID (diff)
From: Andrey Ryabinin <ryabinin.a.a@gmail.com>
To: "Aneesh Kumar K.V" <aneesh.kumar@linux.vnet.ibm.com>
Cc: akpm@linux-foundation.org, linux-mm@kvack.org,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH 2/4] kasan: MODULE_VADDR is not available on all archs
Date: Thu, 3 Sep 2015 11:25:09 +0300 [thread overview]
Message-ID: <55E803E5.10809@gmail.com> (raw)
In-Reply-To: <1441266863-5435-2-git-send-email-aneesh.kumar@linux.vnet.ibm.com>
On 09/03/2015 10:54 AM, Aneesh Kumar K.V wrote:
> Use is_module_text_address instead
>
It should be is_module_address().
We use kernel_or_module_addr() to determine whether this
address belongs to some global variable or not.
And variables are in .data section, .text is only code.
Something like is_module_data_address() would be more precise here.
But since we don't have it, we can just use is_module_address().
Definitely not is_module_text_address().
> Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
> ---
> mm/kasan/report.c | 9 ++++++---
> 1 file changed, 6 insertions(+), 3 deletions(-)
>
> diff --git a/mm/kasan/report.c b/mm/kasan/report.c
> index 6c3f82b0240b..01d2efec8ea4 100644
> --- a/mm/kasan/report.c
> +++ b/mm/kasan/report.c
> @@ -22,6 +22,7 @@
> #include <linux/string.h>
> #include <linux/types.h>
> #include <linux/kasan.h>
> +#include <linux/module.h>
>
> #include <asm/sections.h>
>
> @@ -85,9 +86,11 @@ static void print_error_description(struct kasan_access_info *info)
>
> static inline bool kernel_or_module_addr(const void *addr)
> {
> - return (addr >= (void *)_stext && addr < (void *)_end)
> - || (addr >= (void *)MODULES_VADDR
> - && addr < (void *)MODULES_END);
> + if (addr >= (void *)_stext && addr < (void *)_end)
> + return true;
> + if (is_module_text_address((unsigned long)addr))
> + return true;
> + return false;
> }
>
> static inline bool init_task_stack_addr(const void *addr)
>
next prev parent reply other threads:[~2015-09-03 8:25 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-09-03 7:54 [PATCH 1/4] kasan: Rename kasan_enabled to kasan_report_enabled Aneesh Kumar K.V
2015-09-03 7:54 ` Aneesh Kumar K.V
2015-09-03 7:54 ` [PATCH 2/4] kasan: MODULE_VADDR is not available on all archs Aneesh Kumar K.V
2015-09-03 7:54 ` Aneesh Kumar K.V
2015-09-03 8:25 ` Andrey Ryabinin [this message]
2015-09-03 8:25 ` Andrey Ryabinin
2015-09-03 7:54 ` [PATCH 3/4] kasan: Don't use kasan shadow pointer in generic functions Aneesh Kumar K.V
2015-09-03 7:54 ` Aneesh Kumar K.V
2015-09-03 8:47 ` Andrey Ryabinin
2015-09-03 8:47 ` Andrey Ryabinin
2015-09-03 7:54 ` [PATCH 4/4] kasan: Prevent deadlock in kasan reporting Aneesh Kumar K.V
2015-09-03 7:54 ` Aneesh Kumar K.V
2015-09-03 9:15 ` Andrey Ryabinin
2015-09-03 9:15 ` Andrey Ryabinin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=55E803E5.10809@gmail.com \
--to=ryabinin.a.a@gmail.com \
--cc=akpm@linux-foundation.org \
--cc=aneesh.kumar@linux.vnet.ibm.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.