Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1727772 > unrolled thread

[RFC 01/17] x86/asm/64: Remove the restore_c_regs_and_iret label

Started byAndy Lutomirski <luto@kernel.org>
First post2017-09-06 23:50 +0200
Last post2017-09-07 11:50 +0200
Articles 6 — 3 participants

Back to article view | Back to linux.kernel

This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by below is the oldest one visible, not the original post.


Contents

  [RFC 01/17] x86/asm/64: Remove the restore_c_regs_and_iret label Andy Lutomirski <luto@kernel.org> - 2017-09-06 23:50 +0200
    Re: [RFC 01/17] x86/asm/64: Remove the restore_c_regs_and_iret label Borislav Petkov <bp@alien8.de> - 2017-09-07 11:50 +0200
      Re: [RFC 01/17] x86/asm/64: Remove the restore_c_regs_and_iret label Ingo Molnar <mingo@kernel.org> - 2017-09-07 11:50 +0200
        Re: [RFC 01/17] x86/asm/64: Remove the restore_c_regs_and_iret label Borislav Petkov <bp@alien8.de> - 2017-09-07 12:00 +0200
          Re: [RFC 01/17] x86/asm/64: Remove the restore_c_regs_and_iret label Ingo Molnar <mingo@kernel.org> - 2017-09-07 12:30 +0200
      Re: [RFC 01/17] x86/asm/64: Remove the restore_c_regs_and_iret label Ingo Molnar <mingo@kernel.org> - 2017-09-07 11:50 +0200

#1727772 — [RFC 01/17] x86/asm/64: Remove the restore_c_regs_and_iret label

FromAndy Lutomirski <luto@kernel.org>
Date2017-09-06 23:50 +0200
Subject[RFC 01/17] x86/asm/64: Remove the restore_c_regs_and_iret label
Message-ID<umQmR-7tQ-3@gated-at.bofh.it>
The only user was the 64-bit opportunistic SYSRET failure path, and
that path didn't really need it.  This change makes the
opportunistic SYSRET code a bit more straightforward and gets rid of
the label.

Signed-off-by: Andy Lutomirski <luto@kernel.org>
---
 arch/x86/entry/entry_64.S | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/arch/x86/entry/entry_64.S b/arch/x86/entry/entry_64.S
index e995ea828789..a0ebeeb9d12f 100644
--- a/arch/x86/entry/entry_64.S
+++ b/arch/x86/entry/entry_64.S
@@ -240,7 +240,6 @@ entry_SYSCALL64_slow_path:
 	call	do_syscall_64		/* returns with IRQs disabled */
 
 return_from_SYSCALL_64:
-	RESTORE_EXTRA_REGS
 	TRACE_IRQS_IRETQ		/* we're about to change IF */
 
 	/*
@@ -309,13 +308,14 @@ return_from_SYSCALL_64:
 	 */
 syscall_return_via_sysret:
 	/* rcx and r11 are already restored (see code above) */
+	RESTORE_EXTRA_REGS
 	RESTORE_C_REGS_EXCEPT_RCX_R11
 	movq	RSP(%rsp), %rsp
 	USERGS_SYSRET64
 
 opportunistic_sysret_failed:
 	SWAPGS
-	jmp	restore_c_regs_and_iret
+	jmp	restore_regs_and_iret
 END(entry_SYSCALL_64)
 
 ENTRY(stub_ptregs_64)
@@ -550,7 +550,6 @@ retint_kernel:
  */
 GLOBAL(restore_regs_and_iret)
 	RESTORE_EXTRA_REGS
-restore_c_regs_and_iret:
 	RESTORE_C_REGS
 	REMOVE_PT_GPREGS_FROM_STACK 8
 	INTERRUPT_RETURN
-- 
2.13.5

[toc] | [next] | [standalone]


#1728092

FromBorislav Petkov <bp@alien8.de>
Date2017-09-07 11:50 +0200
Message-ID<un1BD-6At-1@gated-at.bofh.it>
In reply to#1727772
On Wed, Sep 06, 2017 at 02:36:46PM -0700, Andy Lutomirski wrote:
> The only user was the 64-bit opportunistic SYSRET failure path, and
> that path didn't really need it.  This change makes the
> opportunistic SYSRET code a bit more straightforward and gets rid of
> the label.
> 
> Signed-off-by: Andy Lutomirski <luto@kernel.org>
> ---
>  arch/x86/entry/entry_64.S | 5 ++---
>  1 file changed, 2 insertions(+), 3 deletions(-)

Btw, you need to refresh your stuff because of those UNWIND_HINT_EMPTY
things. I get:

checking file arch/x86/entry/entry_64.S
Hunk #1 succeeded at 245 (offset 5 lines).
Hunk #2 FAILED at 308.
Hunk #3 succeeded at 637 (offset 88 lines).
1 out of 3 hunks FAILED

Otherwise

Reviewed-by: Borislav Petkov <bp@suse.de>

-- 
Regards/Gruss,
    Boris.

Good mailing practices for 400: avoid top-posting and trim the reply.

[toc] | [prev] | [next] | [standalone]


#1728093

FromIngo Molnar <mingo@kernel.org>
Date2017-09-07 11:50 +0200
Message-ID<un1BD-6At-3@gated-at.bofh.it>
In reply to#1728092
* Ingo Molnar <mingo@kernel.org> wrote:

> 
> * Borislav Petkov <bp@alien8.de> wrote:
> 
> > On Wed, Sep 06, 2017 at 02:36:46PM -0700, Andy Lutomirski wrote:
> > > The only user was the 64-bit opportunistic SYSRET failure path, and
> > > that path didn't really need it.  This change makes the
> > > opportunistic SYSRET code a bit more straightforward and gets rid of
> > > the label.
> > > 
> > > Signed-off-by: Andy Lutomirski <luto@kernel.org>
> > > ---
> > >  arch/x86/entry/entry_64.S | 5 ++---
> > >  1 file changed, 2 insertions(+), 3 deletions(-)
> > 
> > Btw, you need to refresh your stuff because of those UNWIND_HINT_EMPTY
> > things. I get:
> > 
> > checking file arch/x86/entry/entry_64.S
> > Hunk #1 succeeded at 245 (offset 5 lines).
> > Hunk #2 FAILED at 308.
> > Hunk #3 succeeded at 637 (offset 88 lines).
> > 1 out of 3 hunks FAILED
> > 
> > Otherwise
> > 
> > Reviewed-by: Borislav Petkov <bp@suse.de>
> 
> I'd suggest tip:master or upstream 24e700e291d5 as a post-merge-window base for 
> x86 bits.

Actually, scratch that, 1c9fe4409ce3 is probably the best base, it includes the 
PCID fixes. Haven't had much time to test that base though.

Thanks,

	Ingo

[toc] | [prev] | [next] | [standalone]


#1728106

FromBorislav Petkov <bp@alien8.de>
Date2017-09-07 12:00 +0200
Message-ID<un1Lk-6F4-21@gated-at.bofh.it>
In reply to#1728093
On Thu, Sep 07, 2017 at 11:49:16AM +0200, Ingo Molnar wrote:
> Actually, scratch that, 1c9fe4409ce3 is probably the best base, it includes the 
> PCID fixes. Haven't had much time to test that base though.

Ok, I'll use that and scream if something's sh*tting in its pants.

-- 
Regards/Gruss,
    Boris.

Good mailing practices for 400: avoid top-posting and trim the reply.

[toc] | [prev] | [next] | [standalone]


#1728130

FromIngo Molnar <mingo@kernel.org>
Date2017-09-07 12:30 +0200
Message-ID<un2em-74v-19@gated-at.bofh.it>
In reply to#1728106
* Borislav Petkov <bp@alien8.de> wrote:

> On Thu, Sep 07, 2017 at 11:49:16AM +0200, Ingo Molnar wrote:
> > Actually, scratch that, 1c9fe4409ce3 is probably the best base, it includes the 
> > PCID fixes. Haven't had much time to test that base though.
> 
> Ok, I'll use that and scream if something's sh*tting in its pants.

not the best of kernels, 32-bit allyesconfig doesn't even appear to build:

  net/netfilter/xt_hashlimit.o: In function `hashlimit_mt_common.isra.6':
  xt_hashlimit.c:(.text+0x1146): undefined reference to `__udivdi3'


:-/

Thanks,

	Ingo

[toc] | [prev] | [next] | [standalone]


#1728096

FromIngo Molnar <mingo@kernel.org>
Date2017-09-07 11:50 +0200
Message-ID<un1BD-6At-5@gated-at.bofh.it>
In reply to#1728092
* Borislav Petkov <bp@alien8.de> wrote:

> On Wed, Sep 06, 2017 at 02:36:46PM -0700, Andy Lutomirski wrote:
> > The only user was the 64-bit opportunistic SYSRET failure path, and
> > that path didn't really need it.  This change makes the
> > opportunistic SYSRET code a bit more straightforward and gets rid of
> > the label.
> > 
> > Signed-off-by: Andy Lutomirski <luto@kernel.org>
> > ---
> >  arch/x86/entry/entry_64.S | 5 ++---
> >  1 file changed, 2 insertions(+), 3 deletions(-)
> 
> Btw, you need to refresh your stuff because of those UNWIND_HINT_EMPTY
> things. I get:
> 
> checking file arch/x86/entry/entry_64.S
> Hunk #1 succeeded at 245 (offset 5 lines).
> Hunk #2 FAILED at 308.
> Hunk #3 succeeded at 637 (offset 88 lines).
> 1 out of 3 hunks FAILED
> 
> Otherwise
> 
> Reviewed-by: Borislav Petkov <bp@suse.de>

I'd suggest tip:master or upstream 24e700e291d5 as a post-merge-window base for 
x86 bits.

Thanks,

	Ingo

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web