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


Groups > linux.kernel > #1249200 > unrolled thread

[PATCH v2 0/2] x86/entry: 32-bit facepalm fixes

Started byAndy Lutomirski <luto@kernel.org>
First post2015-10-17 00:50 +0200
Last post2015-10-17 13:50 +0200
Articles 3 — 2 participants

Back to article view | Back to linux.kernel


Contents

  [PATCH v2 0/2] x86/entry: 32-bit facepalm fixes Andy Lutomirski <luto@kernel.org> - 2015-10-17 00:50 +0200
    [PATCH v2 2/2] x86/entry/32: Fix FS and GS restore in opportunistic SYSEXIT Andy Lutomirski <luto@kernel.org> - 2015-10-17 00:50 +0200
    Re: [PATCH v2 0/2] x86/entry: 32-bit facepalm fixes Borislav Petkov <bp@alien8.de> - 2015-10-17 13:50 +0200

#1249200 — [PATCH v2 0/2] x86/entry: 32-bit facepalm fixes

FromAndy Lutomirski <luto@kernel.org>
Date2015-10-17 00:50 +0200
Subject[PATCH v2 0/2] x86/entry: 32-bit facepalm fixes
Message-ID<qklZ0-3t5-5@gated-at.bofh.it>
Fixes a (correct) warning and an oops.  Oddly, both seem to only
cause problems on some configurations.  The second one presumably
only survived my testing because I didn't test a threaded program.

The first patch is a bit ugly.  If that's a problem, suggestions
are welcome.

Changes from v1: No longer breaks 64-bit builds.

Andy Lutomirski (2):
  x86/entry/32: Fix entry_INT80_32 to expect interrupts to be on
  x86/entry/32: Fix FS and GS restore in opportunistic SYSEXIT

 arch/x86/entry/common.c          | 15 ++++++++++++---
 arch/x86/entry/entry_32.S        | 12 ++++++------
 arch/x86/entry/entry_64_compat.S |  2 +-
 3 files changed, 19 insertions(+), 10 deletions(-)

-- 
2.4.3

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [next] | [standalone]


#1249202 — [PATCH v2 2/2] x86/entry/32: Fix FS and GS restore in opportunistic SYSEXIT

FromAndy Lutomirski <luto@kernel.org>
Date2015-10-17 00:50 +0200
Subject[PATCH v2 2/2] x86/entry/32: Fix FS and GS restore in opportunistic SYSEXIT
Message-ID<qklZ0-3t5-21@gated-at.bofh.it>
In reply to#1249200
We either need to restore them before popping and thus changing ESP,
or we need to adjust the offsets.  The former is simpler.

Fixes: 5f310f739b4c x86/entry/32: ("Re-implement SYSENTER using the new C path")
Signed-off-by: Andy Lutomirski <luto@kernel.org>
---
 arch/x86/entry/entry_32.S | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/arch/x86/entry/entry_32.S b/arch/x86/entry/entry_32.S
index ba0dad937be9..e3ede42d30e2 100644
--- a/arch/x86/entry/entry_32.S
+++ b/arch/x86/entry/entry_32.S
@@ -315,6 +315,8 @@ sysenter_past_esp:
 	TRACE_IRQS_ON			/* User mode traces as IRQs on. */
 	movl	PT_EIP(%esp), %edx	/* pt_regs->ip */
 	movl	PT_OLDESP(%esp), %ecx	/* pt_regs->sp */
+1:	mov	PT_FS(%esp), %fs
+	PTGS_TO_GS
 	popl	%ebx			/* pt_regs->bx */
 	popl	%eax			/* skip pt_regs->cx */
 	popl	%eax			/* skip pt_regs->dx */
@@ -322,8 +324,6 @@ sysenter_past_esp:
 	popl	%edi			/* pt_regs->di */
 	popl	%ebp			/* pt_regs->bp */
 	popl	%eax			/* pt_regs->ax */
-1:	mov	PT_FS(%esp), %fs
-	PTGS_TO_GS
 
 	/*
 	 * Return back to the vDSO, which will pop ecx and edx.
-- 
2.4.3

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

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


#1249316

FromBorislav Petkov <bp@alien8.de>
Date2015-10-17 13:50 +0200
Message-ID<qky9P-4G1-13@gated-at.bofh.it>
In reply to#1249200
On Fri, Oct 16, 2015 at 03:42:53PM -0700, Andy Lutomirski wrote:
> Fixes a (correct) warning and an oops.  Oddly, both seem to only
> cause problems on some configurations.  The second one presumably
> only survived my testing because I didn't test a threaded program.
> 
> The first patch is a bit ugly.  If that's a problem, suggestions
> are welcome.
> 
> Changes from v1: No longer breaks 64-bit builds.
> 
> Andy Lutomirski (2):
>   x86/entry/32: Fix entry_INT80_32 to expect interrupts to be on
>   x86/entry/32: Fix FS and GS restore in opportunistic SYSEXIT
> 
>  arch/x86/entry/common.c          | 15 ++++++++++++---
>  arch/x86/entry/entry_32.S        | 12 ++++++------
>  arch/x86/entry/entry_64_compat.S |  2 +-
>  3 files changed, 19 insertions(+), 10 deletions(-)

Looks good.

Reported-and-tested-by: Borislav Petkov <bp@suse.de>

-- 
Regards/Gruss,
    Boris.

ECO tip #101: Trim your mails when you reply.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web