2022-05-04 17:28:15

by Thomas Richter

[permalink] [raw]
Subject: [PATCH 1/2] entry: Rename arch_check_user_regs() to arch_enter_from_user_mode()

From: Sven Schnelle <[email protected]>

arch_check_user_regs() is used at the moment to verify that struct pt_regs
contains valid values when entering the kernel from userspace. s390 needs
a place in the generic entry code to modify a cpu data structure when
switching from userspace to kernel mode. As arch_check_user_regs() is
exactly this, rename it to arch_enter_from_user_mode().

Cc: Thomas Gleixner <[email protected]>
Cc: Peter Zijlstra <[email protected]>
Cc: Andy Lutomirski <[email protected]>
Signed-off-by: Sven Schnelle <[email protected]>
---
arch/s390/include/asm/entry-common.h | 4 ++--
arch/x86/include/asm/entry-common.h | 4 ++--
include/linux/entry-common.h | 8 ++++----
kernel/entry/common.c | 2 +-
4 files changed, 9 insertions(+), 9 deletions(-)

diff --git a/arch/s390/include/asm/entry-common.h b/arch/s390/include/asm/entry-common.h
index 2f0a1cacdf85..99d654ccd3db 100644
--- a/arch/s390/include/asm/entry-common.h
+++ b/arch/s390/include/asm/entry-common.h
@@ -15,12 +15,12 @@
void do_per_trap(struct pt_regs *regs);

#ifdef CONFIG_DEBUG_ENTRY
-static __always_inline void arch_check_user_regs(struct pt_regs *regs)
+static __always_inline void arch_enter_from_user_mode(struct pt_regs *regs)
{
debug_user_asce(0);
}

-#define arch_check_user_regs arch_check_user_regs
+#define arch_enter_from_user_mode arch_enter_from_user_mode
#endif /* CONFIG_DEBUG_ENTRY */

static __always_inline void arch_exit_to_user_mode_work(struct pt_regs *regs,
diff --git a/arch/x86/include/asm/entry-common.h b/arch/x86/include/asm/entry-common.h
index 43184640b579..674ed46d3ced 100644
--- a/arch/x86/include/asm/entry-common.h
+++ b/arch/x86/include/asm/entry-common.h
@@ -10,7 +10,7 @@
#include <asm/fpu/api.h>

/* Check that the stack and regs on entry from user mode are sane. */
-static __always_inline void arch_check_user_regs(struct pt_regs *regs)
+static __always_inline void arch_enter_from_user_mode(struct pt_regs *regs)
{
if (IS_ENABLED(CONFIG_DEBUG_ENTRY)) {
/*
@@ -42,7 +42,7 @@ static __always_inline void arch_check_user_regs(struct pt_regs *regs)
WARN_ON_ONCE(regs != task_pt_regs(current));
}
}
-#define arch_check_user_regs arch_check_user_regs
+#define arch_enter_from_user_mode arch_enter_from_user_mode

static inline void arch_exit_to_user_mode_prepare(struct pt_regs *regs,
unsigned long ti_work)
diff --git a/include/linux/entry-common.h b/include/linux/entry-common.h
index ab78bd4c2eb0..c92ac75d6556 100644
--- a/include/linux/entry-common.h
+++ b/include/linux/entry-common.h
@@ -63,7 +63,7 @@
ARCH_EXIT_TO_USER_MODE_WORK)

/**
- * arch_check_user_regs - Architecture specific sanity check for user mode regs
+ * arch_enter_from_user_mode - Architecture specific sanity check for user mode regs
* @regs: Pointer to currents pt_regs
*
* Defaults to an empty implementation. Can be replaced by architecture
@@ -73,10 +73,10 @@
* section. Use __always_inline so the compiler cannot push it out of line
* and make it instrumentable.
*/
-static __always_inline void arch_check_user_regs(struct pt_regs *regs);
+static __always_inline void arch_enter_from_user_mode(struct pt_regs *regs);

-#ifndef arch_check_user_regs
-static __always_inline void arch_check_user_regs(struct pt_regs *regs) {}
+#ifndef arch_enter_from_user_mode
+static __always_inline void arch_enter_from_user_mode(struct pt_regs *regs) {}
#endif

/**
diff --git a/kernel/entry/common.c b/kernel/entry/common.c
index 93c3b86e781c..9e63923c5a0f 100644
--- a/kernel/entry/common.c
+++ b/kernel/entry/common.c
@@ -17,7 +17,7 @@
/* See comment for enter_from_user_mode() in entry-common.h */
static __always_inline void __enter_from_user_mode(struct pt_regs *regs)
{
- arch_check_user_regs(regs);
+ arch_enter_from_user_mode(regs);
lockdep_hardirqs_off(CALLER_ADDR0);

CT_WARN_ON(ct_state() != CONTEXT_USER);
--
2.32.0



2022-05-09 02:43:45

by Thomas Gleixner

[permalink] [raw]
Subject: Re: [PATCH 1/2] entry: Rename arch_check_user_regs() to arch_enter_from_user_mode()

On Wed, May 04 2022 at 08:23, Thomas Richter wrote:
> From: Sven Schnelle <[email protected]>
>
> arch_check_user_regs() is used at the moment to verify that struct pt_regs
> contains valid values when entering the kernel from userspace. s390 needs
> a place in the generic entry code to modify a cpu data structure when
> switching from userspace to kernel mode. As arch_check_user_regs() is
> exactly this, rename it to arch_enter_from_user_mode().
>
> Cc: Thomas Gleixner <[email protected]>
> Cc: Peter Zijlstra <[email protected]>
> Cc: Andy Lutomirski <[email protected]>
> Signed-off-by: Sven Schnelle <[email protected]>

Reviewed-by: Thomas Gleixner <[email protected]>

2022-05-09 04:04:43

by Heiko Carstens

[permalink] [raw]
Subject: Re: [PATCH 1/2] entry: Rename arch_check_user_regs() to arch_enter_from_user_mode()

On Fri, May 06, 2022 at 09:38:02PM +0200, Thomas Gleixner wrote:
> On Wed, May 04 2022 at 08:23, Thomas Richter wrote:
> > From: Sven Schnelle <[email protected]>
> >
> > arch_check_user_regs() is used at the moment to verify that struct pt_regs
> > contains valid values when entering the kernel from userspace. s390 needs
> > a place in the generic entry code to modify a cpu data structure when
> > switching from userspace to kernel mode. As arch_check_user_regs() is
> > exactly this, rename it to arch_enter_from_user_mode().
> >
> > Cc: Thomas Gleixner <[email protected]>
> > Cc: Peter Zijlstra <[email protected]>
> > Cc: Andy Lutomirski <[email protected]>
> > Signed-off-by: Sven Schnelle <[email protected]>
>
> Reviewed-by: Thomas Gleixner <[email protected]>

Is it ok for you if this gets routed via the s390 tree?

2022-05-09 08:19:23

by Thomas Gleixner

[permalink] [raw]
Subject: Re: [PATCH 1/2] entry: Rename arch_check_user_regs() to arch_enter_from_user_mode()

On Fri, May 06 2022 at 21:49, Heiko Carstens wrote:
> On Fri, May 06, 2022 at 09:38:02PM +0200, Thomas Gleixner wrote:
>> On Wed, May 04 2022 at 08:23, Thomas Richter wrote:
>> > From: Sven Schnelle <[email protected]>
>> >
>> > arch_check_user_regs() is used at the moment to verify that struct pt_regs
>> > contains valid values when entering the kernel from userspace. s390 needs
>> > a place in the generic entry code to modify a cpu data structure when
>> > switching from userspace to kernel mode. As arch_check_user_regs() is
>> > exactly this, rename it to arch_enter_from_user_mode().
>> >
>> > Cc: Thomas Gleixner <[email protected]>
>> > Cc: Peter Zijlstra <[email protected]>
>> > Cc: Andy Lutomirski <[email protected]>
>> > Signed-off-by: Sven Schnelle <[email protected]>
>>
>> Reviewed-by: Thomas Gleixner <[email protected]>
>
> Is it ok for you if this gets routed via the s390 tree?

Sure.

2022-05-09 08:54:06

by Peter Zijlstra

[permalink] [raw]
Subject: Re: [PATCH 1/2] entry: Rename arch_check_user_regs() to arch_enter_from_user_mode()

On Wed, May 04, 2022 at 08:23:50AM +0200, Thomas Richter wrote:
> From: Sven Schnelle <[email protected]>
>
> arch_check_user_regs() is used at the moment to verify that struct pt_regs
> contains valid values when entering the kernel from userspace. s390 needs
> a place in the generic entry code to modify a cpu data structure when
> switching from userspace to kernel mode. As arch_check_user_regs() is
> exactly this, rename it to arch_enter_from_user_mode().
>
> Cc: Thomas Gleixner <[email protected]>
> Cc: Peter Zijlstra <[email protected]>
> Cc: Andy Lutomirski <[email protected]>
> Signed-off-by: Sven Schnelle <[email protected]>
> ---

With the note that NMI doesn't (necessarily) call this..

Acked-by: Peter Zijlstra (Intel) <[email protected]>

2022-05-09 10:17:47

by Sven Schnelle

[permalink] [raw]
Subject: Re: [PATCH 1/2] entry: Rename arch_check_user_regs() to arch_enter_from_user_mode()

Peter Zijlstra <[email protected]> writes:

> On Wed, May 04, 2022 at 08:23:50AM +0200, Thomas Richter wrote:
>> From: Sven Schnelle <[email protected]>
>>
>> arch_check_user_regs() is used at the moment to verify that struct pt_regs
>> contains valid values when entering the kernel from userspace. s390 needs
>> a place in the generic entry code to modify a cpu data structure when
>> switching from userspace to kernel mode. As arch_check_user_regs() is
>> exactly this, rename it to arch_enter_from_user_mode().
>>
>> Cc: Thomas Gleixner <[email protected]>
>> Cc: Peter Zijlstra <[email protected]>
>> Cc: Andy Lutomirski <[email protected]>
>> Signed-off-by: Sven Schnelle <[email protected]>
>> ---
>
> With the note that NMI doesn't (necessarily) call this..
>
> Acked-by: Peter Zijlstra (Intel) <[email protected]>

How about:

"When entering the kernel from userspace, arch_check_user_regs() is
used to verify that struct pt_regs contains valid values. Note that
the NMI codepath doesn't call this function. s390 needs a place in the
generic entry code to modify a cpu data structure when switching from
userspace to kernel mode. As arch_check_user_regs() is exactly this,
rename it to arch_enter_from_user_mode()."

2022-05-09 10:25:14

by Peter Zijlstra

[permalink] [raw]
Subject: Re: [PATCH 1/2] entry: Rename arch_check_user_regs() to arch_enter_from_user_mode()

On Mon, May 09, 2022 at 08:20:41AM +0200, Sven Schnelle wrote:
> Peter Zijlstra <[email protected]> writes:
>
> > On Wed, May 04, 2022 at 08:23:50AM +0200, Thomas Richter wrote:
> >> From: Sven Schnelle <[email protected]>
> >>
> >> arch_check_user_regs() is used at the moment to verify that struct pt_regs
> >> contains valid values when entering the kernel from userspace. s390 needs
> >> a place in the generic entry code to modify a cpu data structure when
> >> switching from userspace to kernel mode. As arch_check_user_regs() is
> >> exactly this, rename it to arch_enter_from_user_mode().
> >>
> >> Cc: Thomas Gleixner <[email protected]>
> >> Cc: Peter Zijlstra <[email protected]>
> >> Cc: Andy Lutomirski <[email protected]>
> >> Signed-off-by: Sven Schnelle <[email protected]>
> >> ---
> >
> > With the note that NMI doesn't (necessarily) call this..
> >
> > Acked-by: Peter Zijlstra (Intel) <[email protected]>
>
> How about:
>
> "When entering the kernel from userspace, arch_check_user_regs() is
> used to verify that struct pt_regs contains valid values. Note that
> the NMI codepath doesn't call this function. s390 needs a place in the
> generic entry code to modify a cpu data structure when switching from
> userspace to kernel mode. As arch_check_user_regs() is exactly this,
> rename it to arch_enter_from_user_mode()."

Sure, thanks!

2022-05-09 10:55:23

by Heiko Carstens

[permalink] [raw]
Subject: Re: [PATCH 1/2] entry: Rename arch_check_user_regs() to arch_enter_from_user_mode()

On Mon, May 09, 2022 at 09:08:31AM +0200, Peter Zijlstra wrote:
> On Mon, May 09, 2022 at 08:20:41AM +0200, Sven Schnelle wrote:
> > Peter Zijlstra <[email protected]> writes:
> >
> > > On Wed, May 04, 2022 at 08:23:50AM +0200, Thomas Richter wrote:
> > >> From: Sven Schnelle <[email protected]>
> > >>
> > >> arch_check_user_regs() is used at the moment to verify that struct pt_regs
> > >> contains valid values when entering the kernel from userspace. s390 needs
> > >> a place in the generic entry code to modify a cpu data structure when
> > >> switching from userspace to kernel mode. As arch_check_user_regs() is
> > >> exactly this, rename it to arch_enter_from_user_mode().
> > >>
> > >> Cc: Thomas Gleixner <[email protected]>
> > >> Cc: Peter Zijlstra <[email protected]>
> > >> Cc: Andy Lutomirski <[email protected]>
> > >> Signed-off-by: Sven Schnelle <[email protected]>
> > >> ---
> > >
> > > With the note that NMI doesn't (necessarily) call this..
> > >
> > > Acked-by: Peter Zijlstra (Intel) <[email protected]>
> >
> > How about:
> >
> > "When entering the kernel from userspace, arch_check_user_regs() is
> > used to verify that struct pt_regs contains valid values. Note that
> > the NMI codepath doesn't call this function. s390 needs a place in the
> > generic entry code to modify a cpu data structure when switching from
> > userspace to kernel mode. As arch_check_user_regs() is exactly this,
> > rename it to arch_enter_from_user_mode()."
>
> Sure, thanks!

Merged into commit message, and applied both patches to s390 tree.

Thanks!