public inbox for linux-s390@vger.kernel.org
 help / color / mirror / Atom feed
* [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