* [PATCH 0/9] sections: Unify kernel sections range check and use
@ 2021-06-26 7:34 Kefeng Wang
2021-06-26 7:34 ` [PATCH 7/9] s390: kprobes: Use is_kernel() helper Kefeng Wang
0 siblings, 1 reply; 4+ messages in thread
From: Kefeng Wang @ 2021-06-26 7:34 UTC (permalink / raw)
To: Arnd Bergmann, linux-arch, linux-kernel
Cc: Kefeng Wang, linuxppc-dev, linux-s390, iommu, bpf
There are three head files(kallsyms.h, kernel.h and sections.h) which
include the kernel sections range check, let's make some cleanup and
unify them.
1. cleanup arch specific text/data check and fix address boundary check in kallsyms.h
2. make all the basic kernel range check function into sections.h
3. update all the callers, and use the helper in sections.h to simplify the code
4. use memory_intersects() in sections.h instead of private overlap for dma-debug
Cc: linuxppc-dev@lists.ozlabs.org
Cc: linux-s390@vger.kernel.org
Cc: linux-arch@vger.kernel.org
Cc: iommu@lists.linux-foundation.org
Cc: bpf@vger.kernel.org
Kefeng Wang (9):
kallsyms: Remove arch specific text and data check
kallsyms: Fix address-checks for kernel related range
sections: Move and rename core_kernel_data() to is_kernel_data()
sections: Move is_kernel_inittext() into sections.h
kallsyms: Rename is_kernel() and is_kernel_text()
sections: Add new is_kernel() and is_kernel_text()
s390: kprobes: Use is_kernel() helper
powerpc/mm: Use is_kernel_text() and is_kernel_inittext() helper
dma-debug: Use memory_intersects() directly
arch/powerpc/mm/pgtable_32.c | 7 +---
arch/s390/kernel/kprobes.c | 9 +----
arch/x86/kernel/unwind_orc.c | 2 +-
arch/x86/net/bpf_jit_comp.c | 2 +-
include/asm-generic/sections.h | 71 ++++++++++++++++++++++++++--------
include/linux/kallsyms.h | 21 +++-------
include/linux/kernel.h | 2 -
kernel/cfi.c | 2 +-
kernel/dma/debug.c | 14 +------
kernel/extable.c | 33 ++--------------
kernel/locking/lockdep.c | 3 --
kernel/trace/ftrace.c | 2 +-
mm/kasan/report.c | 2 +-
net/sysctl_net.c | 2 +-
14 files changed, 76 insertions(+), 96 deletions(-)
--
2.26.2
^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH 7/9] s390: kprobes: Use is_kernel() helper
2021-06-26 7:34 [PATCH 0/9] sections: Unify kernel sections range check and use Kefeng Wang
@ 2021-06-26 7:34 ` Kefeng Wang
2021-06-28 10:02 ` Heiko Carstens
0 siblings, 1 reply; 4+ messages in thread
From: Kefeng Wang @ 2021-06-26 7:34 UTC (permalink / raw)
To: Arnd Bergmann, linux-arch, linux-kernel
Cc: Kefeng Wang, Heiko Carstens, Vasily Gorbik, Christian Borntraeger,
linux-s390
Use is_kernel() helper instead of is_kernel_addr().
Cc: Heiko Carstens <hca@linux.ibm.com>
Cc: Vasily Gorbik <gor@linux.ibm.com>
Cc: Christian Borntraeger <borntraeger@de.ibm.com>
Cc: linux-s390@vger.kernel.org
Signed-off-by: Kefeng Wang <wangkefeng.wang@huawei.com>
---
arch/s390/kernel/kprobes.c | 9 ++-------
1 file changed, 2 insertions(+), 7 deletions(-)
diff --git a/arch/s390/kernel/kprobes.c b/arch/s390/kernel/kprobes.c
index 528bb31815c3..7e7a8d5219bb 100644
--- a/arch/s390/kernel/kprobes.c
+++ b/arch/s390/kernel/kprobes.c
@@ -92,11 +92,6 @@ static void copy_instruction(struct kprobe *p)
}
NOKPROBE_SYMBOL(copy_instruction);
-static inline int is_kernel_addr(void *addr)
-{
- return addr < (void *)_end;
-}
-
static int s390_get_insn_slot(struct kprobe *p)
{
/*
@@ -105,7 +100,7 @@ static int s390_get_insn_slot(struct kprobe *p)
* field can be patched and executed within the insn slot.
*/
p->ainsn.insn = NULL;
- if (is_kernel_addr(p->addr))
+ if (is_kernel(p->addr))
p->ainsn.insn = get_s390_insn_slot();
else if (is_module_addr(p->addr))
p->ainsn.insn = get_insn_slot();
@@ -117,7 +112,7 @@ static void s390_free_insn_slot(struct kprobe *p)
{
if (!p->ainsn.insn)
return;
- if (is_kernel_addr(p->addr))
+ if (is_kernel(p->addr))
free_s390_insn_slot(p->ainsn.insn, 0);
else
free_insn_slot(p->ainsn.insn, 0);
--
2.26.2
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH 7/9] s390: kprobes: Use is_kernel() helper
2021-06-26 7:34 ` [PATCH 7/9] s390: kprobes: Use is_kernel() helper Kefeng Wang
@ 2021-06-28 10:02 ` Heiko Carstens
2021-06-28 11:09 ` Kefeng Wang
0 siblings, 1 reply; 4+ messages in thread
From: Heiko Carstens @ 2021-06-28 10:02 UTC (permalink / raw)
To: Kefeng Wang
Cc: Arnd Bergmann, linux-arch, linux-kernel, Vasily Gorbik,
Christian Borntraeger, linux-s390
On Sat, Jun 26, 2021 at 03:34:37PM +0800, Kefeng Wang wrote:
> Use is_kernel() helper instead of is_kernel_addr().
>
> Cc: Heiko Carstens <hca@linux.ibm.com>
> Cc: Vasily Gorbik <gor@linux.ibm.com>
> Cc: Christian Borntraeger <borntraeger@de.ibm.com>
> Cc: linux-s390@vger.kernel.org
> Signed-off-by: Kefeng Wang <wangkefeng.wang@huawei.com>
> ---
> arch/s390/kernel/kprobes.c | 9 ++-------
> 1 file changed, 2 insertions(+), 7 deletions(-)
...
> -static inline int is_kernel_addr(void *addr)
> -{
> - return addr < (void *)_end;
> -}
> -
> static int s390_get_insn_slot(struct kprobe *p)
> {
> /*
> @@ -105,7 +100,7 @@ static int s390_get_insn_slot(struct kprobe *p)
> * field can be patched and executed within the insn slot.
> */
> p->ainsn.insn = NULL;
> - if (is_kernel_addr(p->addr))
> + if (is_kernel(p->addr))
> p->ainsn.insn = get_s390_insn_slot();
> else if (is_module_addr(p->addr))
> p->ainsn.insn = get_insn_slot();
> @@ -117,7 +112,7 @@ static void s390_free_insn_slot(struct kprobe *p)
> {
> if (!p->ainsn.insn)
> return;
> - if (is_kernel_addr(p->addr))
> + if (is_kernel(p->addr))
> free_s390_insn_slot(p->ainsn.insn, 0);
> else
> free_insn_slot(p->ainsn.insn, 0);
Given that this makes sense its own, and I can't follow the discussion
of the patch series due to missing cc, I applied this to the s390 tree
- and also fixed up the missing unsigned long casts.
Thanks!
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH 7/9] s390: kprobes: Use is_kernel() helper
2021-06-28 10:02 ` Heiko Carstens
@ 2021-06-28 11:09 ` Kefeng Wang
0 siblings, 0 replies; 4+ messages in thread
From: Kefeng Wang @ 2021-06-28 11:09 UTC (permalink / raw)
To: Heiko Carstens
Cc: Arnd Bergmann, linux-arch, linux-kernel, Vasily Gorbik,
Christian Borntraeger, linux-s390
On 2021/6/28 18:02, Heiko Carstens wrote:
> On Sat, Jun 26, 2021 at 03:34:37PM +0800, Kefeng Wang wrote:
>> Use is_kernel() helper instead of is_kernel_addr().
>>
>> Cc: Heiko Carstens <hca@linux.ibm.com>
>> Cc: Vasily Gorbik <gor@linux.ibm.com>
>> Cc: Christian Borntraeger <borntraeger@de.ibm.com>
>> Cc: linux-s390@vger.kernel.org
>> Signed-off-by: Kefeng Wang <wangkefeng.wang@huawei.com>
>> ---
>> arch/s390/kernel/kprobes.c | 9 ++-------
>> 1 file changed, 2 insertions(+), 7 deletions(-)
> ...
>> -static inline int is_kernel_addr(void *addr)
>> -{
>> - return addr < (void *)_end;
>> -}
>> -
>> static int s390_get_insn_slot(struct kprobe *p)
>> {
>> /*
>> @@ -105,7 +100,7 @@ static int s390_get_insn_slot(struct kprobe *p)
>> * field can be patched and executed within the insn slot.
>> */
>> p->ainsn.insn = NULL;
>> - if (is_kernel_addr(p->addr))
>> + if (is_kernel(p->addr))
>> p->ainsn.insn = get_s390_insn_slot();
>> else if (is_module_addr(p->addr))
>> p->ainsn.insn = get_insn_slot();
>> @@ -117,7 +112,7 @@ static void s390_free_insn_slot(struct kprobe *p)
>> {
>> if (!p->ainsn.insn)
>> return;
>> - if (is_kernel_addr(p->addr))
>> + if (is_kernel(p->addr))
>> free_s390_insn_slot(p->ainsn.insn, 0);
>> else
>> free_insn_slot(p->ainsn.insn, 0);
> Given that this makes sense its own, and I can't follow the discussion
> of the patch series due to missing cc, I applied this to the s390 tree
> - and also fixed up the missing unsigned long casts.
Thanks Heiko, I got some tips(someone says, not send all patches to all
the people who maybe not care
about the other patches), so I only send this one to you, but the
patches is cc to all the maillist,
and it could be check from
https://lore.kernel.org/linux-arch/20210626073439.150586-1-wangkefeng.wang@huawei.com
>
> Thanks!
> .
>
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2021-06-28 11:09 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2021-06-26 7:34 [PATCH 0/9] sections: Unify kernel sections range check and use Kefeng Wang
2021-06-26 7:34 ` [PATCH 7/9] s390: kprobes: Use is_kernel() helper Kefeng Wang
2021-06-28 10:02 ` Heiko Carstens
2021-06-28 11:09 ` Kefeng Wang
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox