From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S934272AbcBQMLu (ORCPT ); Wed, 17 Feb 2016 07:11:50 -0500 Received: from terminus.zytor.com ([198.137.202.10]:55981 "EHLO terminus.zytor.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756119AbcBQMLs (ORCPT ); Wed, 17 Feb 2016 07:11:48 -0500 Date: Wed, 17 Feb 2016 04:10:27 -0800 From: tip-bot for Andy Lutomirski Message-ID: 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 Reply-To: luto@kernel.org, hpa@zytor.com, dvlasenk@redhat.com, oleg@redhat.com, bp@alien8.de, linux-kernel@vger.kernel.org, luto@amacapital.net, peterz@infradead.org, gorcunov@gmail.com, stsp@list.ru, mingo@kernel.org, torvalds@linux-foundation.org, tglx@linutronix.de, viro@zeniv.linux.org.uk, xemul@parallels.com, brgerst@gmail.com In-Reply-To: References: To: linux-tip-commits@vger.kernel.org Subject: [tip:x86/asm] x86/signal/64: Add a comment about sigcontext-> fs and gs Git-Commit-ID: e54fdcca70a33a7e447e526b305db85e978c0563 X-Mailer: tip-git-log-daemon Robot-ID: Robot-Unsubscribe: Contact to get blacklisted from these emails MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain; charset=UTF-8 Content-Disposition: inline Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Commit-ID: e54fdcca70a33a7e447e526b305db85e978c0563 Gitweb: http://git.kernel.org/tip/e54fdcca70a33a7e447e526b305db85e978c0563 Author: Andy Lutomirski AuthorDate: Tue, 16 Feb 2016 15:09:01 -0800 Committer: Ingo Molnar 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 Acked-by: Borislav Petkov Cc: Al Viro Cc: Andy Lutomirski Cc: Brian Gerst Cc: Cyrill Gorcunov Cc: Denys Vlasenko Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Oleg Nesterov Cc: Pavel Emelyanov Cc: Peter Zijlstra Cc: Stas Sergeev Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/baa78f3c84106fa5acbc319377b1850602f5deec.1455664054.git.luto@kernel.org Signed-off-by: Ingo Molnar --- 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;