From: Greg KH <gregkh@suse.de>
To: linux-kernel@vger.kernel.org, stable@kernel.org
Cc: stable-review@kernel.org, torvalds@linux-foundation.org,
akpm@linux-foundation.org, alan@lxorguk.ukuu.org.uk,
"H. Peter Anvin" <hpa@linux.intel.com>
Subject: [15/19] x86-32, vdso: On system call restart after SYSENTER, use int $0x80
Date: Fri, 26 Aug 2011 14:58:36 -0700 [thread overview]
Message-ID: <20110826220121.139808231@clark.kroah.org> (raw)
In-Reply-To: <20110826220137.GA14059@kroah.com>
2.6.32-longterm review patch. If anyone has any objections, please let us know.
------------------
From: "H. Peter Anvin" <hpa@linux.intel.com>
commit 7ca0758cdb7c241cb4e0490a8d95f0eb5b861daf upstream.
When we enter a 32-bit system call via SYSENTER or SYSCALL, we shuffle
the arguments to match the int $0x80 calling convention. This was
probably a design mistake, but it's what it is now. This causes
errors if the system call as to be restarted.
For SYSENTER, we have to invoke the instruction from the vdso as the
return address is hardcoded. Accordingly, we can simply replace the
jump in the vdso with an int $0x80 instruction and use the slower
entry point for a post-restart.
Suggested-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
Link: http://lkml.kernel.org/r/CA%2B55aFztZ=r5wa0x26KJQxvZOaQq8s2v3u50wCyJcA-Sc4g8gQ@mail.gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
---
arch/x86/vdso/vdso32/sysenter.S | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- a/arch/x86/vdso/vdso32/sysenter.S
+++ b/arch/x86/vdso/vdso32/sysenter.S
@@ -43,7 +43,7 @@ __kernel_vsyscall:
.space 7,0x90
/* 14: System call restart point is here! (SYSENTER_RETURN-2) */
- jmp .Lenter_kernel
+ int $0x80
/* 16: System call normal return point is here! */
VDSO32_SYSENTER_RETURN: /* Symbol used by sysenter.c via vdso32-syms.h */
pop %ebp
next prev parent reply other threads:[~2011-08-27 14:55 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-08-26 22:01 [00/19] 2.6.32.46-longterm review Greg KH
2011-08-26 21:58 ` [01/19] USB: xhci: fix OS want to own HC Greg KH
2011-08-26 21:58 ` [02/19] USB: assign instead of equal in usbtmc.c Greg KH
2011-08-26 21:58 ` [03/19] USB: usb-storage: unusual_devs entry for ARM V2M motherboard Greg KH
2011-08-26 21:58 ` [04/19] USB: Serial: Added device ID for Qualcomm Modem in Sagemcom's HiLo3G Greg KH
2011-08-26 21:58 ` [05/19] atm: br2864: sent packets truncated in VC routed mode Greg KH
2011-08-26 21:58 ` [06/19] hwmon: (ibmaem) add missing kfree Greg KH
2011-08-26 21:58 ` [07/19] ALSA: snd-usb-caiaq: Correct offset fields of outbound iso_frame_desc Greg KH
2011-08-26 21:58 ` [08/19] mm: fix wrong vmap address calculations with odd NR_CPUS values Greg KH
2011-08-26 21:58 ` [09/19] perf tools: do not look at ./config for configuration Greg KH
2011-08-26 21:58 ` [10/19] fs/partitions/efi.c: corrupted GUID partition tables can cause kernel oops Greg KH
2011-08-26 21:58 ` [11/19] befs: Validate length of long symbolic links Greg KH
2011-08-26 21:58 ` [12/19] ALSA: snd_usb_caiaq: track submitted output urbs Greg KH
2011-08-26 21:58 ` [13/19] ALSA: ac97: Add HP Compaq dc5100 SFF(PT003AW) to Headphone Jack Sense whitelist Greg KH
2011-08-26 21:58 ` [14/19] futex: Fix regression with read only mappings Greg KH
2011-08-26 21:58 ` Greg KH [this message]
2011-08-26 21:58 ` [16/19] x86, UV: Remove UV delay in starting slave cpus Greg KH
2011-08-26 21:58 ` [17/19] drm/ttm: fix ttm_bo_add_ttm(user) failure path Greg KH
2011-08-26 21:58 ` [18/19] fuse: check size of FUSE_NOTIFY_INVAL_ENTRY message Greg KH
2011-08-26 21:58 ` [19/19] igb: Fix lack of flush after register write and before delay Greg KH
2011-08-27 15:27 ` [00/19] 2.6.32.46-longterm review Christoph Biedl
2011-08-27 16:05 ` Greg KH
2011-08-27 16:25 ` Christoph Biedl
2011-08-28 12:34 ` Stratos Psomadakis
2011-08-28 15:07 ` [stable] " Greg KH
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20110826220121.139808231@clark.kroah.org \
--to=gregkh@suse.de \
--cc=akpm@linux-foundation.org \
--cc=alan@lxorguk.ukuu.org.uk \
--cc=hpa@linux.intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=stable-review@kernel.org \
--cc=stable@kernel.org \
--cc=torvalds@linux-foundation.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®