From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755101AbbGYSMb (ORCPT ); Sat, 25 Jul 2015 14:12:31 -0400 Received: from mail-ig0-f170.google.com ([209.85.213.170]:33882 "EHLO mail-ig0-f170.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754962AbbGYSMa (ORCPT ); Sat, 25 Jul 2015 14:12:30 -0400 MIME-Version: 1.0 In-Reply-To: References: <040374ca9800988a0ed35ea9ddeb4a762c1371fa.1437690860.git.luto@kernel.org> <20150724102503.GA19090@nazgul.tnic> <20150725041656.GB32606@nazgul.tnic> <20150725043218.GD32606@nazgul.tnic> Date: Sat, 25 Jul 2015 11:12:29 -0700 X-Google-Sender-Auth: JIvT1FfjPFIzxG-s01Eg3vdy9bA Message-ID: Subject: Re: [PATCH 1/3] x86/entry/64: Refactor IRQ stacks and make then NMI-safe From: Linus Torvalds To: Andy Lutomirski Cc: Borislav Petkov , Andy Lutomirski , X86 ML , "linux-kernel@vger.kernel.org" , Brian Gerst , Steven Rostedt , Willy Tarreau , Thomas Gleixner , Peter Zijlstra 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 Sat, Jul 25, 2015 at 10:59 AM, Andy Lutomirski wrote: > > What if we added something like: > > if (regs->ip == ret_after_sti && !user_mode(regs) && (regs->flags & > X86_EFLAGS_IF)) { > regs->ip--; > regs->flags &= ~X86_EFLAGS_IF; > } > > to do_nmi, do_machine_check, and do_debug (the latter because kernel > breakpoints, damnit)? Hmm. And how would you test it? Putting an instruction breakpoint on the final 'ret' might do it, I guess. "mov ss" disables even that (and is documented to disable nmi too), but maybe it works with 'sti; ret'. But yes, as long as we'd have some test coverage, that sounds doable. Linus