All of lore.kernel.org
 help / color / mirror / Atom feed
From: Kefeng Wang <wangkefeng.wang@huawei.com>
To: <arnd@arndb.de>, <linux-arch@vger.kernel.org>,
	<linux-kernel@vger.kernel.org>, <linuxppc-dev@lists.ozlabs.org>,
	<rostedt@goodmis.org>, <mingo@redhat.com>, <davem@davemloft.net>,
	<ast@kernel.org>, <ryabinin.a.a@gmail.com>,
	<akpm@linux-foundation.org>
Cc: <mpe@ellerman.id.au>, <benh@kernel.crashing.org>,
	<paulus@samba.org>, <bpf@vger.kernel.org>,
	Kefeng Wang <wangkefeng.wang@huawei.com>,
	"Sergey Senozhatsky" <sergey.senozhatsky@gmail.com>,
	Petr Mladek <pmladek@suse.com>,
	Sergey Senozhatsky <senozhatsky@chromium.org>
Subject: [PATCH v3 2/9] kallsyms: Fix address-checks for kernel related range
Date: Sun, 26 Sep 2021 15:20:41 +0800	[thread overview]
Message-ID: <20210926072048.190336-3-wangkefeng.wang@huawei.com> (raw)
In-Reply-To: <20210926072048.190336-1-wangkefeng.wang@huawei.com>

The is_kernel_inittext/is_kernel_text/is_kernel function should not
include the end address(the labels _einittext, _etext and _end) when
check the address range, the issue exists since Linux v2.6.12.

Cc: Arnd Bergmann <arnd@arndb.de>
Cc: Sergey Senozhatsky <sergey.senozhatsky@gmail.com>
Cc: Petr Mladek <pmladek@suse.com>
Reviewed-by: Petr Mladek <pmladek@suse.com>
Reviewed-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
Acked-by: Sergey Senozhatsky <senozhatsky@chromium.org>
Signed-off-by: Kefeng Wang <wangkefeng.wang@huawei.com>
---
 include/linux/kallsyms.h | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/include/linux/kallsyms.h b/include/linux/kallsyms.h
index 2a241e3f063f..b016c62f30a6 100644
--- a/include/linux/kallsyms.h
+++ b/include/linux/kallsyms.h
@@ -27,21 +27,21 @@ struct module;
 static inline int is_kernel_inittext(unsigned long addr)
 {
 	if (addr >= (unsigned long)_sinittext
-	    && addr <= (unsigned long)_einittext)
+	    && addr < (unsigned long)_einittext)
 		return 1;
 	return 0;
 }
 
 static inline int is_kernel_text(unsigned long addr)
 {
-	if ((addr >= (unsigned long)_stext && addr <= (unsigned long)_etext))
+	if ((addr >= (unsigned long)_stext && addr < (unsigned long)_etext))
 		return 1;
 	return in_gate_area_no_mm(addr);
 }
 
 static inline int is_kernel(unsigned long addr)
 {
-	if (addr >= (unsigned long)_stext && addr <= (unsigned long)_end)
+	if (addr >= (unsigned long)_stext && addr < (unsigned long)_end)
 		return 1;
 	return in_gate_area_no_mm(addr);
 }
-- 
2.26.2


WARNING: multiple messages have this Message-ID (diff)
From: Kefeng Wang <wangkefeng.wang@huawei.com>
To: <arnd@arndb.de>, <linux-arch@vger.kernel.org>,
	<linux-kernel@vger.kernel.org>, <linuxppc-dev@lists.ozlabs.org>,
	<rostedt@goodmis.org>, <mingo@redhat.com>, <davem@davemloft.net>,
	<ast@kernel.org>, <ryabinin.a.a@gmail.com>,
	<akpm@linux-foundation.org>
Cc: Petr Mladek <pmladek@suse.com>,
	Kefeng Wang <wangkefeng.wang@huawei.com>,
	Sergey Senozhatsky <senozhatsky@chromium.org>,
	Sergey Senozhatsky <sergey.senozhatsky@gmail.com>,
	paulus@samba.org, bpf@vger.kernel.org
Subject: [PATCH v3 2/9] kallsyms: Fix address-checks for kernel related range
Date: Sun, 26 Sep 2021 15:20:41 +0800	[thread overview]
Message-ID: <20210926072048.190336-3-wangkefeng.wang@huawei.com> (raw)
In-Reply-To: <20210926072048.190336-1-wangkefeng.wang@huawei.com>

The is_kernel_inittext/is_kernel_text/is_kernel function should not
include the end address(the labels _einittext, _etext and _end) when
check the address range, the issue exists since Linux v2.6.12.

Cc: Arnd Bergmann <arnd@arndb.de>
Cc: Sergey Senozhatsky <sergey.senozhatsky@gmail.com>
Cc: Petr Mladek <pmladek@suse.com>
Reviewed-by: Petr Mladek <pmladek@suse.com>
Reviewed-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
Acked-by: Sergey Senozhatsky <senozhatsky@chromium.org>
Signed-off-by: Kefeng Wang <wangkefeng.wang@huawei.com>
---
 include/linux/kallsyms.h | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/include/linux/kallsyms.h b/include/linux/kallsyms.h
index 2a241e3f063f..b016c62f30a6 100644
--- a/include/linux/kallsyms.h
+++ b/include/linux/kallsyms.h
@@ -27,21 +27,21 @@ struct module;
 static inline int is_kernel_inittext(unsigned long addr)
 {
 	if (addr >= (unsigned long)_sinittext
-	    && addr <= (unsigned long)_einittext)
+	    && addr < (unsigned long)_einittext)
 		return 1;
 	return 0;
 }
 
 static inline int is_kernel_text(unsigned long addr)
 {
-	if ((addr >= (unsigned long)_stext && addr <= (unsigned long)_etext))
+	if ((addr >= (unsigned long)_stext && addr < (unsigned long)_etext))
 		return 1;
 	return in_gate_area_no_mm(addr);
 }
 
 static inline int is_kernel(unsigned long addr)
 {
-	if (addr >= (unsigned long)_stext && addr <= (unsigned long)_end)
+	if (addr >= (unsigned long)_stext && addr < (unsigned long)_end)
 		return 1;
 	return in_gate_area_no_mm(addr);
 }
-- 
2.26.2


  parent reply	other threads:[~2021-09-26  7:18 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-09-26  7:20 [PATCH v3 0/9] sections: Unify kernel sections range check and use Kefeng Wang
2021-09-26  7:20 ` Kefeng Wang
2021-09-26  7:20 ` [PATCH v3 1/9] kallsyms: Remove arch specific text and data check Kefeng Wang
2021-09-26  7:20   ` Kefeng Wang
2021-09-26  7:20 ` Kefeng Wang [this message]
2021-09-26  7:20   ` [PATCH v3 2/9] kallsyms: Fix address-checks for kernel related range Kefeng Wang
2021-09-26  7:20 ` [PATCH v3 3/9] sections: Move and rename core_kernel_data() to is_kernel_core_data() Kefeng Wang
2021-09-26  7:20   ` Kefeng Wang
2021-09-26  7:20 ` [PATCH v3 4/9] sections: Move is_kernel_inittext() into sections.h Kefeng Wang
2021-09-26  7:20   ` Kefeng Wang
2021-09-26  7:20 ` [PATCH v3 5/9] x86: mm: Rename __is_kernel_text() to is_x86_32_kernel_text() Kefeng Wang
2021-09-26  7:20   ` Kefeng Wang
2021-09-26  7:20 ` [PATCH v3 6/9] sections: Provide internal __is_kernel() and __is_kernel_text() helper Kefeng Wang
2021-09-26  7:20   ` Kefeng Wang
2021-09-26  7:20 ` [PATCH v3 7/9] mm: kasan: Use is_kernel() helper Kefeng Wang
2021-09-26  7:20   ` Kefeng Wang
2021-09-26  7:20 ` [PATCH v3 8/9] extable: Use is_kernel_text() helper Kefeng Wang
2021-09-26  7:20   ` Kefeng Wang
2021-09-26  7:20 ` [PATCH v3 9/9] powerpc/mm: Use is_kernel_text() and is_kernel_inittext() helper Kefeng Wang
2021-09-26  7:20   ` Kefeng Wang
2021-09-28 17:51   ` Christophe Leroy
2021-09-29  1:14     ` Kefeng Wang
2021-09-29  1:14       ` Kefeng Wang

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=20210926072048.190336-3-wangkefeng.wang@huawei.com \
    --to=wangkefeng.wang@huawei.com \
    --cc=akpm@linux-foundation.org \
    --cc=arnd@arndb.de \
    --cc=ast@kernel.org \
    --cc=benh@kernel.crashing.org \
    --cc=bpf@vger.kernel.org \
    --cc=davem@davemloft.net \
    --cc=linux-arch@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linuxppc-dev@lists.ozlabs.org \
    --cc=mingo@redhat.com \
    --cc=mpe@ellerman.id.au \
    --cc=paulus@samba.org \
    --cc=pmladek@suse.com \
    --cc=rostedt@goodmis.org \
    --cc=ryabinin.a.a@gmail.com \
    --cc=senozhatsky@chromium.org \
    --cc=sergey.senozhatsky@gmail.com \
    /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.