Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1757430AbaDVQdZ (ORCPT ); Tue, 22 Apr 2014 12:33:25 -0400 Received: from mail-ve0-f176.google.com ([209.85.128.176]:56942 "EHLO mail-ve0-f176.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1757153AbaDVQdV (ORCPT ); Tue, 22 Apr 2014 12:33:21 -0400 MIME-Version: 1.0 In-Reply-To: <53569467.1030809@zytor.com> References: <5355A9E9.9070102@zytor.com> <1dbe8155-58da-45c2-9dc0-d9f4b5a6e643@email.android.com> <20140422112312.GB15882@pd.tnic> <20140422144659.GF15882@pd.tnic> <53569467.1030809@zytor.com> From: Andrew Lutomirski Date: Tue, 22 Apr 2014 09:33:00 -0700 Message-ID: Subject: Re: [PATCH] x86-64: espfix for 64-bit mode *PROTOTYPE* To: "H. Peter Anvin" Cc: Borislav Petkov , "H. Peter Anvin" , Linux Kernel Mailing List , Linus Torvalds , Ingo Molnar , Alexander van Heukelum , Konrad Rzeszutek Wilk , Boris Ostrovsky , Arjan van de Ven , Brian Gerst , Alexandre Julliard , Andi Kleen , Thomas Gleixner Content-Type: text/plain; charset=UTF-8 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, Apr 22, 2014 at 9:10 AM, H. Peter Anvin wrote: > Honestly, guys... you're painting the bikeshed at the moment. > > Initialization is the easiest bit of all this code. The tricky part is > *the rest of the code*, i.e. the stuff in entry_64.S. That's because the initialization code is much simpler, so it's easy to pick on :) Sorry. For the espfix_adjust_stack thing, when can it actually need to do anything? irqs should be off, I think, and MCE, NMI, and debug exceptions use ist, so that leaves just #SS and #GP, I think. How can those actually occur? Is there a way to trigger them deliberately from userspace? Why do you have three espfix_adjust_stack What happens on the IST entries? If I've read your patch right, you're still switching back to the normal stack, which looks questionable. Also, if you want to same some register abuse on each exception entry, could you check the saved RIP instead of the current RSP? I.e. use the test instruction with offset(%rsp)? Maybe there are multiple possible values, though, and just testing some bits doesn't help. --Andy -- 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/