Received: by 2002:a05:6a10:8c0a:0:0:0:0 with SMTP id go10csp904464pxb; Tue, 9 Feb 2021 16:11:14 -0800 (PST) X-Google-Smtp-Source: ABdhPJyEIvRSSKFi8cnxaH612k1BOmPgnrqHfLbIYx0diTB5CwRcmlDUSNPKtgf2A9o9w3mxkpxZ X-Received: by 2002:a50:c04d:: with SMTP id u13mr704104edd.226.1612915874659; Tue, 09 Feb 2021 16:11:14 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1612915874; cv=none; d=google.com; s=arc-20160816; b=dFeqx7qc3+b5BTfBNOqShrt7f1QjeSX2axI3ZO4BpIIVpfWoG85oYU7NMpScfglyoV fJNU50P3C1r1saG3yDArDAlbkigDDPU+aL1Mffaycmat+SO+hjhMUOoKob4s5MVkrUBd zib6IELaeyt79xjpmstlJZmYs2AJqh/p9dfcLm+TwngebesqkxP+TywSt9Z/HE/IrZGF iBhVrRBiCGCHA9KAY3kEY3jFmGTW8NDvOxbB5G7ac5M8QV3IWvWYIbnO/aZb/c0dJKQO NKSIvAj8kWvdrZXFG6ByI0cWVdWVzNHxi1ykaeZok2b0FSXD06+axuRFmah1fvt4RC4W Lykg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:dkim-signature; bh=D1gHfVj9daLMOiC9zdv90+xWpQ7UbXE2sI6PlB/eK9I=; b=qgggKonQaSxcvskF299HFJ/2hZQjLBP/bvl4FEGLUSTXItAQ2QxXylspDQmcyQSCUa RUAqyxu1/HQtv5Zdo8+zrEk2QLf44IuiEKpyQ+vUqn8e1ViOlvg2f+UwbiOfD/7n7+59 1jKslAszDxKuwxRZecJfDN9lVXA+GgFnHpm4efDYKaTFmw9xuG7yCu3KzTl//oqBZo7e 0SLH90USaffwY6U1REGxZTz31tBxFF6OdZfGePX6059Feh41cKhN0TMg+U7R6O3OneYL xcSHmH/YVdcjOjOkzZWcHnd9HAuB5HntWAv8HzUFZLF5KDNHlkMt7hQjP8DMJiGu5Nx/ Hytg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=qV8BV13P; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id d18si149317ejd.342.2021.02.09.16.10.51; Tue, 09 Feb 2021 16:11:14 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=qV8BV13P; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232788AbhBJAIr (ORCPT + 99 others); Tue, 9 Feb 2021 19:08:47 -0500 Received: from mail.kernel.org ([198.145.29.99]:41378 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233899AbhBIUl5 (ORCPT ); Tue, 9 Feb 2021 15:41:57 -0500 Received: by mail.kernel.org (Postfix) with ESMTPSA id F325B64EAC for ; Tue, 9 Feb 2021 20:10:00 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1612901401; bh=xHJDr/1nD89ckeRCIpjTV/NH06t3sFAkrRdc0f9MThY=; h=References:In-Reply-To:From:Date:Subject:To:Cc:From; b=qV8BV13PVpX+G8rd1T5rWrQymjsvQtZt0FpMgDnqj4rOsZl2FtRtxumMeoojFPRBn Zmcx6TqO2ElgeHLZAq8Biet2W4BXGWxA/qQnZLXZaT7D13JRVk8xLI285nIP7q50Mm Hfz/ehrUWrFinSipTQkt+JxMzvbzDFzuCTzfmjdgWWYxpcZ7jXGv/B1CWwY7mjcE6w TsVe37lLSFd6A3aPzEiEhc28EjGn7amOONfRAnwt7iGd1OXq1fjnwRShWKGGtvtnM2 nOtytLjIxmrFHlnqdls9u0QHS3ucdo6nq1IufYq9O+DG/7TN7wm0dfq0bQhmP6fQfA 4Nk+Q145XAmMQ== Received: by mail-ed1-f53.google.com with SMTP id y8so25565004ede.6 for ; Tue, 09 Feb 2021 12:10:00 -0800 (PST) X-Gm-Message-State: AOAM531S7eq3QtswUR0FX+LaXXkEcDRYeOKSPQDN8O2AtnJJqMClEOWi f1RyWor1WJa0NJIL8dJZlTfYRwiCDbavwLSht8ZwMQ== X-Received: by 2002:a05:6402:31a3:: with SMTP id dj3mr24435566edb.172.1612901399469; Tue, 09 Feb 2021 12:09:59 -0800 (PST) MIME-Version: 1.0 References: <20210203185517.GH13819@zn.tnic> In-Reply-To: <20210203185517.GH13819@zn.tnic> From: Andy Lutomirski Date: Tue, 9 Feb 2021 12:09:48 -0800 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [PATCH 07/11] x86/fault: Split the OOPS code out from no_context() To: Borislav Petkov Cc: Andy Lutomirski , X86 ML , LKML , Dave Hansen , Alexei Starovoitov , Daniel Borkmann , Yonghong Song , Masami Hiramatsu , Peter Zijlstra Content-Type: text/plain; charset="UTF-8" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, Feb 3, 2021 at 10:56 AM Borislav Petkov wrote: > > On Sun, Jan 31, 2021 at 09:24:38AM -0800, Andy Lutomirski wrote: > > Not all callers of no_context() want to run exception fixups. > > Separate the OOPS code out from the fixup code in no_context(). > > > > Cc: Dave Hansen > > Cc: Peter Zijlstra > > Signed-off-by: Andy Lutomirski > > --- > > arch/x86/mm/fault.c | 116 +++++++++++++++++++++++--------------------- > > 1 file changed, 62 insertions(+), 54 deletions(-) > > > > diff --git a/arch/x86/mm/fault.c b/arch/x86/mm/fault.c > > index 1939e546beae..6f43d080e1e8 100644 > > --- a/arch/x86/mm/fault.c > > +++ b/arch/x86/mm/fault.c > > @@ -618,53 +618,20 @@ static void set_signal_archinfo(unsigned long address, > > } > > > > static noinline void > > -no_context(struct pt_regs *regs, unsigned long error_code, > > - unsigned long address, int signal, int si_code) > > +page_fault_oops(struct pt_regs *regs, unsigned long error_code, > > Not sure about this name - it still tries to recover: > efi_recover_from_page_fault(). > > Judging by where it is called, maybe no_context_tail() or > no_context_oops() or no_context_finish_me_already()... > > Yah, I haz no better idea. :-\ > > ... > > > @@ -739,6 +692,61 @@ no_context(struct pt_regs *regs, unsigned long error_code, > > oops_end(flags, regs, sig); > > } > > > > +static noinline void > > +no_context(struct pt_regs *regs, unsigned long error_code, > > + unsigned long address, int signal, int si_code) > > +{ > > + if (user_mode(regs)) { > > + /* > > + * This is an implicit supervisor-mode access from user > > + * mode. Bypass all the kernel-mode recovery code and just > > + * OOPS. > > + */ > > + goto oops; > > Just do > > return page_fault_oops(...); > > here and get rid of the label. I'm going to skip this one, because that code is deleted later in the series, and fixing it here just adds more churn.