From: tip-bot for Andy Lutomirski <tipbot@zytor.com>
To: linux-tip-commits@vger.kernel.org
Cc: linux-kernel@vger.kernel.org, luto@amacapital.net,
oleg@redhat.com, bp@alien8.de, peterz@infradead.org,
stsp@list.ru, gorcunov@gmail.com, hpa@zytor.com, luto@kernel.org,
dvlasenk@redhat.com, brgerst@gmail.com, viro@zeniv.linux.org.uk,
xemul@parallels.com, mingo@kernel.org,
torvalds@linux-foundation.org, tglx@linutronix.de
Subject: [tip:x86/asm] x86/signal/64: Add a comment about sigcontext-> fs and gs
Date: Wed, 17 Feb 2016 04:10:27 -0800 [thread overview]
Message-ID: <tip-e54fdcca70a33a7e447e526b305db85e978c0563@git.kernel.org> (raw)
In-Reply-To: <baa78f3c84106fa5acbc319377b1850602f5deec.1455664054.git.luto@kernel.org>
Commit-ID: e54fdcca70a33a7e447e526b305db85e978c0563
Gitweb: http://git.kernel.org/tip/e54fdcca70a33a7e447e526b305db85e978c0563
Author: Andy Lutomirski <luto@kernel.org>
AuthorDate: Tue, 16 Feb 2016 15:09:01 -0800
Committer: Ingo Molnar <mingo@kernel.org>
CommitDate: Wed, 17 Feb 2016 08:32:11 +0100
x86/signal/64: Add a comment about sigcontext->fs and gs
These fields have a strange history. This tries to document it.
This borrows from 9a036b93a344 ("x86/signal/64: Remove 'fs' and 'gs'
from sigcontext"), which was reverted by ed596cde9425 ("Revert x86
sigcontext cleanups").
Signed-off-by: Andy Lutomirski <luto@kernel.org>
Acked-by: Borislav Petkov <bp@alien8.de>
Cc: Al Viro <viro@zeniv.linux.org.uk>
Cc: Andy Lutomirski <luto@amacapital.net>
Cc: Brian Gerst <brgerst@gmail.com>
Cc: Cyrill Gorcunov <gorcunov@gmail.com>
Cc: Denys Vlasenko <dvlasenk@redhat.com>
Cc: H. Peter Anvin <hpa@zytor.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Oleg Nesterov <oleg@redhat.com>
Cc: Pavel Emelyanov <xemul@parallels.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Stas Sergeev <stsp@list.ru>
Cc: Thomas Gleixner <tglx@linutronix.de>
Link: http://lkml.kernel.org/r/baa78f3c84106fa5acbc319377b1850602f5deec.1455664054.git.luto@kernel.org
Signed-off-by: Ingo Molnar <mingo@kernel.org>
---
arch/x86/include/uapi/asm/sigcontext.h | 25 +++++++++++++++++++++++++
1 file changed, 25 insertions(+)
diff --git a/arch/x86/include/uapi/asm/sigcontext.h b/arch/x86/include/uapi/asm/sigcontext.h
index d485232..702c404 100644
--- a/arch/x86/include/uapi/asm/sigcontext.h
+++ b/arch/x86/include/uapi/asm/sigcontext.h
@@ -341,6 +341,31 @@ struct sigcontext {
__u64 rip;
__u64 eflags; /* RFLAGS */
__u16 cs;
+
+ /*
+ * Prior to 2.5.64 ("[PATCH] x86-64 updates for 2.5.64-bk3"),
+ * Linux saved and restored fs and gs in these slots. This
+ * was counterproductive, as fsbase and gsbase were never
+ * saved, so arch_prctl was presumably unreliable.
+ *
+ * These slots should never be reused without extreme caution:
+ *
+ * - Some DOSEMU versions stash fs and gs in these slots manually,
+ * thus overwriting anything the kernel expects to be preserved
+ * in these slots.
+ *
+ * - If these slots are ever needed for any other purpose,
+ * there is some risk that very old 64-bit binaries could get
+ * confused. I doubt that many such binaries still work,
+ * though, since the same patch in 2.5.64 also removed the
+ * 64-bit set_thread_area syscall, so it appears that there
+ * is no TLS API beyond modify_ldt that works in both pre-
+ * and post-2.5.64 kernels.
+ *
+ * If the kernel ever adds explicit fs, gs, fsbase, and gsbase
+ * save/restore, it will most likely need to be opt-in and use
+ * different context slots.
+ */
__u16 gs;
__u16 fs;
__u16 __pad0;
next prev parent reply other threads:[~2016-02-17 12:11 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-02-16 23:09 [PATCH v5 0/4] x86: sigcontext fixes, again Andy Lutomirski
2016-02-16 23:09 ` [PATCH v5 1/4] x86/signal/64: Add a comment about sigcontext->fs and gs Andy Lutomirski
2016-02-17 7:21 ` Ingo Molnar
2016-02-17 10:03 ` Stas Sergeev
2016-02-17 11:05 ` Ingo Molnar
2016-02-17 12:10 ` tip-bot for Andy Lutomirski [this message]
2016-02-16 23:09 ` [PATCH v5 2/4] x86/signal/64: Fix SS if needed when delivering a 64-bit signal Andy Lutomirski
2016-02-17 12:10 ` [tip:x86/asm] " tip-bot for Andy Lutomirski
2016-02-16 23:09 ` [PATCH v5 3/4] x86/signal/64: Re-add support for SS in the 64-bit signal context Andy Lutomirski
2016-02-17 12:11 ` [tip:x86/asm] " tip-bot for Andy Lutomirski
2016-02-16 23:09 ` [PATCH v5 4/4] selftests/x86: Add tests for UC_SIGCONTEXT_SS and UC_STRICT_RESTORE_SS Andy Lutomirski
2016-02-17 12:11 ` [tip:x86/asm] " tip-bot for Andy Lutomirski
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=tip-e54fdcca70a33a7e447e526b305db85e978c0563@git.kernel.org \
--to=tipbot@zytor.com \
--cc=bp@alien8.de \
--cc=brgerst@gmail.com \
--cc=dvlasenk@redhat.com \
--cc=gorcunov@gmail.com \
--cc=hpa@zytor.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-tip-commits@vger.kernel.org \
--cc=luto@amacapital.net \
--cc=luto@kernel.org \
--cc=mingo@kernel.org \
--cc=oleg@redhat.com \
--cc=peterz@infradead.org \
--cc=stsp@list.ru \
--cc=tglx@linutronix.de \
--cc=torvalds@linux-foundation.org \
--cc=viro@zeniv.linux.org.uk \
--cc=xemul@parallels.com \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.