Received: by 2002:a05:7412:3784:b0:e2:908c:2ebd with SMTP id jk4csp1776894rdb; Mon, 2 Oct 2023 23:56:49 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFA9iwqZioIohEMDD9dbWTOWsa4RHTziFE3ORfoZdeuS21YAOXM/AGPqNXJV7vy1lWQFmeh X-Received: by 2002:a17:902:7246:b0:1bd:d6b5:a54f with SMTP id c6-20020a170902724600b001bdd6b5a54fmr12202198pll.55.1696316208915; Mon, 02 Oct 2023 23:56:48 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1696316208; cv=none; d=google.com; s=arc-20160816; b=AKQOucIM8xkmVOJYjOOTyyA02+rezXCufkWCA8BmdYwOoaNCqak/hOwqf0AbRcs2Y6 Ol54ZhoZXZTvbc/sdT3E09DiUmHSTHONn9s+3qBPMFmr6VkQ35w57E3IpJ6s+VnyDjxd +g1lTP0wKXxKgDLcqNmdjY/MkXlt9cyiqBX0oMns0O8Zk9A7ukWo2ux2TfeSFC5edXT2 coXtyGiJEmGiacaaa71j4weplbiZTkl7McjNBF0geAZqetmAM5JlcGv0VG/swPH3lurP vz8+kRLT8adCt6HlNwyXB5GLtcWIq3gfe7Bz5D9k8mcEauFvKCRpO3mxBma6T+6fzPdg bnvw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=cLu+Nie38tLk5TZpiMn0bhtKs2zR9NOclJkrcTwTo9I=; fh=Tb1p8S3iOxe/kX/WSNC3xEJzSVgGJ5DaxSrKb+pzH+4=; b=AcQoARFNGsfHmkdEpHupyTOjCVtbv40Wmw6teaGmzbSVKBmh/UKAwuEz99Q4G+ddQ5 gp9Z/snJhakKP6Id8jSobtTMiqEzbr7bUkh9+2VZiz9wXgOTktVI/njzhlnARfmToTF2 WLIjmEgC4uY5DlwF3ILIceS0sXjiGDLTYDySJ2+oBeWox2b9ujF3vDGgyT7xLjuc3Kkb 75yb567BfTDoHgPhrANb33DNl1XygG9D9WZZDjsp+NkYPoFdeDZ+yZ7wSOUPGLzpG+9Y PuQg/Hp1ZJMaSBb/Zqbb+Fq4D5WjsEPxdVuCXWRmBdbdp62y//BfJBPI1JkKmaD2gh95 kkCA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=eS2QIWAK; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.37 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from snail.vger.email (snail.vger.email. [23.128.96.37]) by mx.google.com with ESMTPS id u5-20020a170903124500b001bba90f8b73si937587plh.78.2023.10.02.23.56.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 02 Oct 2023 23:56:48 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.37 as permitted sender) client-ip=23.128.96.37; Authentication-Results: mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=eS2QIWAK; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.37 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by snail.vger.email (Postfix) with ESMTP id BC4068065017; Mon, 2 Oct 2023 23:56:33 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at snail.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S239228AbjJCG4P (ORCPT + 99 others); Tue, 3 Oct 2023 02:56:15 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:35264 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S239349AbjJCGz5 (ORCPT ); Tue, 3 Oct 2023 02:55:57 -0400 Received: from mgamail.intel.com (mgamail.intel.com [134.134.136.126]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 6023D10C9; Mon, 2 Oct 2023 23:55:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1696316105; x=1727852105; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=vZ6vels66+tC8YRpSCj8dEsAAUPLXovJkO1WpIp9s0Y=; b=eS2QIWAKuLck8ingsWmEsHlazcE79NZGqFVLVIswXnQIt0teHTMojPc4 yY+ntjPD7acGFayNF+q/LPFSLrSUrD3jBUiJgunVc/OZbLqb1IE0xv0qV hrHt6ZsBJF6bdTw8arfelXo0W9M/l+gnztkjr6D6miybtyaRAm0Nr3zBd 35rKq6ZCC/WSSP7e5knULxKa1cNfzAPxW72Y+5Ivz3xUs9VF3BgiZCHue S6F5WAVLWQ6PSxUh8k0D8Caj+riGplMJNOAZybQKvl8ZVC7MMY7q+EH5M Z62oORfJaSLml68uABx2IeEbg8nJLzcGO3AO+QX9kX54rDHlEtiLvIyP6 Q==; X-IronPort-AV: E=McAfee;i="6600,9927,10851"; a="367858182" X-IronPort-AV: E=Sophos;i="6.03,196,1694761200"; d="scan'208";a="367858182" Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by orsmga106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 Oct 2023 23:54:46 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10851"; a="1081900971" X-IronPort-AV: E=Sophos;i="6.03,196,1694761200"; d="scan'208";a="1081900971" Received: from unknown (HELO fred..) ([172.25.112.68]) by fmsmga005.fm.intel.com with ESMTP; 02 Oct 2023 23:54:46 -0700 From: Xin Li To: linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-edac@vger.kernel.org, linux-hyperv@vger.kernel.org, kvm@vger.kernel.org, xen-devel@lists.xenproject.org Cc: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de, dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com, luto@kernel.org, pbonzini@redhat.com, seanjc@google.com, peterz@infradead.org, jgross@suse.com, ravi.v.shankar@intel.com, mhiramat@kernel.org, andrew.cooper3@citrix.com, jiangshanlai@gmail.com, nik.borisov@suse.com Subject: [PATCH v12 23/37] x86/fred: Make exc_page_fault() work for FRED Date: Mon, 2 Oct 2023 23:24:44 -0700 Message-Id: <20231003062458.23552-24-xin3.li@intel.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20231003062458.23552-1-xin3.li@intel.com> References: <20231003062458.23552-1-xin3.li@intel.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF, RCVD_IN_DNSWL_BLOCKED,SPF_HELO_NONE,SPF_NONE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (snail.vger.email [0.0.0.0]); Mon, 02 Oct 2023 23:56:34 -0700 (PDT) From: "H. Peter Anvin (Intel)" On a FRED system, the faulting address (CR2) is passed on the stack, to avoid the problem of transient state. Thus we get the page fault address from the stack instead of CR2. Signed-off-by: H. Peter Anvin (Intel) Tested-by: Shan Kang Signed-off-by: Thomas Gleixner Signed-off-by: Xin Li --- arch/x86/mm/fault.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/arch/x86/mm/fault.c b/arch/x86/mm/fault.c index ab778eac1952..7675bc067153 100644 --- a/arch/x86/mm/fault.c +++ b/arch/x86/mm/fault.c @@ -34,6 +34,7 @@ #include /* kvm_handle_async_pf */ #include /* fixup_vdso_exception() */ #include +#include #define CREATE_TRACE_POINTS #include @@ -1516,8 +1517,10 @@ handle_page_fault(struct pt_regs *regs, unsigned long error_code, DEFINE_IDTENTRY_RAW_ERRORCODE(exc_page_fault) { - unsigned long address = read_cr2(); irqentry_state_t state; + unsigned long address; + + address = cpu_feature_enabled(X86_FEATURE_FRED) ? fred_event_data(regs) : read_cr2(); prefetchw(¤t->mm->mmap_lock); -- 2.34.1