Received: by 2002:a6b:500f:0:0:0:0:0 with SMTP id e15csp740719iob; Tue, 3 May 2022 08:43:54 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxG9EBHiTdPib/nffJVWJzW//L4fSc74mFtExcCcInyUOtwPW+ExhRHtt+vXBRSMEue0knz X-Received: by 2002:a17:903:120c:b0:154:c135:60d3 with SMTP id l12-20020a170903120c00b00154c13560d3mr17235580plh.48.1651592634545; Tue, 03 May 2022 08:43:54 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1651592634; cv=none; d=google.com; s=arc-20160816; b=DPhvlkCM8Ef6N6C2xC5A0YQFifgotiAS558t39U1t9jrQDCJ6qQNfwCNM1TMmopTh7 U/081TpNtCyNRKQzyfBcnPnt3yuSa/UAg+CMw4ne+qe2EGf30EZ+l61S01oxmjHNmKCW lAsdcvT481it+2JwaXO749GqaOtyCWb51jcnxESMfL84Nh2I0ZUtKt5BpUAqJXFI1t+x oOMzOVYkhSh2RjONalZWy8KPDvc/twVbYaSDVr63BOM+GUk71SoPFtLojBNNMrk6QaAh 43EXNh2HAQn0lH+74lId/Hv2nMX/bR3R6TzXI28+NYHeql5Jxu+0zaItwKYCTSgT0rRQ FUkQ== 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=CsELYWB9g735n4psOgGA9RLVHOTzorxnOT84eRzNkC4=; b=zsJ52RPIyF5wm2YFtpINNdOQYc64QVhS+w/Y9J5u8tltsSPpe2dLJ61vZrmufeXxof jlOQeL/Qsm9VJ2/rxjxpskZj1xeMzYKeT1bt6EmZvVIU+CLMhjwKGPYGBan2sruND2Xw jl5JbM1DyLnMvKglOEojOeOm4efL8x89SnhKrbcR0Wl7z3cz+h2z/fdNgrVCJPN6vK/W X3XQWKBCtDnrFi6prXBXtltp2wOyRtOPijK3pRLi1VfpNKubYl0h+j1QovJXDxNM+y2Y gNtGRQPKxYBSj2rU2gDrVDLr/Ck02n5qSAxObbugachTc1PyVgYsyyRE3LOn4ZYkSLFU ebOA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.com header.s=susede1 header.b=bTPrVtI9; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=suse.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id q12-20020aa7842c000000b0050bb3e9c4f7si8019066pfn.134.2022.05.03.08.43.39; Tue, 03 May 2022 08:43:54 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.com header.s=susede1 header.b=bTPrVtI9; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=suse.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236064AbiECNZt (ORCPT + 99 others); Tue, 3 May 2022 09:25:49 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:45958 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233789AbiECNZp (ORCPT ); Tue, 3 May 2022 09:25:45 -0400 Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.220.28]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C460336B7C for ; Tue, 3 May 2022 06:22:11 -0700 (PDT) Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out1.suse.de (Postfix) with ESMTPS id 60A7521871; Tue, 3 May 2022 13:22:10 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1; t=1651584130; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=CsELYWB9g735n4psOgGA9RLVHOTzorxnOT84eRzNkC4=; b=bTPrVtI98WQI22j4IYJLmfiH/e8o2FSFZ7FrB5SFsp33Oi13Cy18uQCxYfHrJpShK6M1t4 K9qPTJ0SxyLjKyMS0KuYdCJGf2bVdcqC2KyIgsR1uPLFEPrejQ1cJVWYyEMo+F3ATAxyEM DnCZsYFDCVgN2tCW6uOkWMgAo9KNMnI= Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 0838913AE0; Tue, 3 May 2022 13:22:10 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id 4IeDAIIscWIASAAAMHmgww (envelope-from ); Tue, 03 May 2022 13:22:10 +0000 From: Juergen Gross To: xen-devel@lists.xenproject.org, x86@kernel.org, linux-kernel@vger.kernel.org Cc: jbeulich@suse.com, Juergen Gross , Dave Hansen , Andy Lutomirski , Peter Zijlstra , Thomas Gleixner , Ingo Molnar , Borislav Petkov , "H. Peter Anvin" Subject: [PATCH 1/2] x86/pat: fix x86_has_pat_wp() Date: Tue, 3 May 2022 15:22:06 +0200 Message-Id: <20220503132207.17234-2-jgross@suse.com> X-Mailer: git-send-email 2.35.3 In-Reply-To: <20220503132207.17234-1-jgross@suse.com> References: <20220503132207.17234-1-jgross@suse.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_NONE, SPF_PASS,T_SCC_BODY_TEXT_LINE 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 x86_has_pat_wp() is using a wrong test, as it relies on the normal PAT configuration used by the kernel. In case the PAT MSR has been setup by another entity (e.g. BIOS or Xen hypervisor) it might return false even if the PAT configuration is allowing WP mappings. Fixes: 1f6f655e01ad ("x86/mm: Add a x86_has_pat_wp() helper") Signed-off-by: Juergen Gross --- arch/x86/mm/init.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/arch/x86/mm/init.c b/arch/x86/mm/init.c index d8cfce221275..71e182ebced3 100644 --- a/arch/x86/mm/init.c +++ b/arch/x86/mm/init.c @@ -80,7 +80,8 @@ static uint8_t __pte2cachemode_tbl[8] = { /* Check that the write-protect PAT entry is set for write-protect */ bool x86_has_pat_wp(void) { - return __pte2cachemode_tbl[_PAGE_CACHE_MODE_WP] == _PAGE_CACHE_MODE_WP; + return __pte2cachemode_tbl[__cachemode2pte_tbl[_PAGE_CACHE_MODE_WP]] == + _PAGE_CACHE_MODE_WP; } enum page_cache_mode pgprot2cachemode(pgprot_t pgprot) -- 2.35.3