From mboxrd@z Thu Jan 1 00:00:00 1970 From: Peter Zijlstra Subject: Re: [PATCH v4 15/17] x86/traps: Fixup general protection faults caused by UMIP Date: Thu, 23 Feb 2017 10:27:24 +0100 Message-ID: <20170223092724.GZ6515@twins.programming.kicks-ass.net> References: <20170223063706.71554-1-ricardo.neri-calderon@linux.intel.com> <20170223063706.71554-16-ricardo.neri-calderon@linux.intel.com> Mime-Version: 1.0 Return-path: DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=merlin.20170209; h=In-Reply-To:Content-Type:MIME-Version: References:Message-ID:Subject:Cc:To:From:Date:Sender:Reply-To: Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Id: List-Help:List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive; bh=3XaP6xGhI4Q2w07p2L1nxWDLlfyWpYGLo1fSIEJZDjI=; b=INdngqnsofcv1jptMU+At61kc 6meRwvw9FW3ekIxheEVNTJOMrQJLKjc/SS1NkU+na/5D5Hrto8wHgerwPslE5UDJXaaizNUd+Jqsg UnTjc9NVFYxrPXP4ERASf/6KaYcMz9QE/OLJqVKShoQq3uuz/kyT1/BIkIKeWM1qDDvnbKlPKsvyT D82V/oTQN0q1kDTXOQEwNqSUN9Ru1m+ugpcrIrkwaONTm53Y6Fj8M9ZxDLyxBukUio2dq9SOLShuo v5/rvFkZXSvmASxvfyQyVzJT6VsAzrPbD7PcBAZTGVcUiINLlh/POpadhcUtj7ULpvBm4KQXDElGD Content-Disposition: inline In-Reply-To: <20170223063706.71554-16-ricardo.neri-calderon@linux.intel.com> Sender: linux-kernel-owner@vger.kernel.org List-ID: Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: Ricardo Neri Cc: Ingo Molnar , Thomas Gleixner , "H. Peter Anvin" , Andy Lutomirski , Borislav Petkov , Andrew Morton , Brian Gerst , Chris Metcalf , Dave Hansen , Paolo Bonzini , Liang Z Li , Masami Hiramatsu , Huang Rui , Jiri Slaby , Jonathan Corbet , "Michael S. Tsirkin" , Paul Gortmaker , Vlastimil Babka , Chen Yucong , Alexandre Julliard , Stas Sergeev On Wed, Feb 22, 2017 at 10:37:04PM -0800, Ricardo Neri wrote: > @@ -492,6 +493,9 @@ do_general_protection(struct pt_regs *regs, long error_code) > RCU_LOCKDEP_WARN(!rcu_is_watching(), "entry code didn't wake RCU"); > cond_local_irq_enable(regs); > > + if (user_mode(regs) && (fixup_umip_exception(regs) == true)) > + return; I'm thinking if (user_mode(regs) && fixup_umip_exception(regs)) return; is actually easier to read.