Received: by 2002:a05:6a10:413:0:0:0:0 with SMTP id 19csp990475pxp; Wed, 16 Mar 2022 23:41:13 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyADjYfQARBFwfGEnpKotBlwg/4OcO67WLdqd2Pi0tut5jUbpgi535BcZjIJdsx4D6H/3lv X-Received: by 2002:aa7:9e07:0:b0:4f6:a7e3:1b57 with SMTP id y7-20020aa79e07000000b004f6a7e31b57mr3125575pfq.13.1647499273263; Wed, 16 Mar 2022 23:41:13 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1647499273; cv=none; d=google.com; s=arc-20160816; b=MDasXdwBidHHR7zRACeEzvQmGHRuutpy5yTQEy5O+/xPUv/XdFQZcUMDH7S+wIK1NX riQqZBy+5ytJw/y2YBjdEqYp7UGqmY15ZXYwJfFtvHSYOG8SVrxwCtaVt3KLNzYuZgRn rJMzXNp0Is0T68+2CaxczQCvVpSdjS9jWUONzgX4prjjLsSSIr+l1KGaL01O/4LfC3pw 9bzU/AGPO6Z8ncYv5/fxhcgT1hKQgVoaEcm9fL6ShE1jDhk5l2e75Hu4oNW4dnL2+RJI P0Z3S41n3/or1OLO42CJN0HVLV5i919QNI1t1jE8AM8TCgbAT4zS+VwWp3S0Smm2/bYx 5/hg== 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 :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=Mu+CGNPHjfEFhfBauN4TwMFZ4vrU4FZuBAmuUfjF0cA=; b=uFl7EcDGA9wE4qcjA8uuFL0ByldNDZjzV/5Yjpz18c8iqwUqtpUxHwPC9pyADAg+xP C2EDPUYxHqHMGDvSczncUualpTLz0e7CcwYXDde3UkUK/zWrwxM/fxpit74q2zRs9VZY vam24UTVYGv97VLGU1Bq6UH9OaRHSDgrnDP1R1wXcks3i1Tz86XuQWnRTLjhFecCrGuY ymwJRTxXcKGOn2xJfqnFJPL9TbMKNngFdC1qvw7UQTFwudPe1dYRdsuSzDS3I1JR5KR2 /z69jx9POn+9FkGdnaSgMIM3/xHKJSiB62FtXxZwqD+XDBw0sS6sxqfySz/NC/fi9bKq /T9Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=zt0xP2ud; spf=softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Return-Path: Received: from lindbergh.monkeyblade.net (lindbergh.monkeyblade.net. [23.128.96.19]) by mx.google.com with ESMTPS id v5-20020a17090a7c0500b001bd14e01f16si7021170pjf.4.2022.03.16.23.41.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Mar 2022 23:41:13 -0700 (PDT) Received-SPF: softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) client-ip=23.128.96.19; Authentication-Results: mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=zt0xP2ud; spf=softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 3ED7C185447; Wed, 16 Mar 2022 22:30:47 -0700 (PDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S240207AbiCNMAz (ORCPT + 99 others); Mon, 14 Mar 2022 08:00:55 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41478 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S240013AbiCNMA0 (ORCPT ); Mon, 14 Mar 2022 08:00:26 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [IPv6:2604:1380:4641:c500::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id CB62C4889D; Mon, 14 Mar 2022 04:58:34 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id CDF726112C; Mon, 14 Mar 2022 11:58:27 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id BFBB6C340E9; Mon, 14 Mar 2022 11:58:26 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1647259107; bh=kDWoLuWgZbLNWaa6/v39LlhzFzcWPnnk35/x3JNIiTI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=zt0xP2udjWvlKPR0pQWe/McSEYI43w5kfQtdiZILLytBkqaTgWmW247GrsWyaiUO0 WBD4YQjHbWI8exoCWrYTZtv4GRzlvk0Xfow8ZmzTEOjJsY6nc5qpIUKDy2+qXMpne3 MMi7ti+XPrZljT3wm/1E2Sw/HteRx3aW7t+8frw0= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Tom Lendacky , Krish Sadhukhan , Borislav Petkov , Liam Merwick Subject: [PATCH 5.4 41/43] x86/cpu: Add hardware-enforced cache coherency as a CPUID feature Date: Mon, 14 Mar 2022 12:53:52 +0100 Message-Id: <20220314112735.572374391@linuxfoundation.org> X-Mailer: git-send-email 2.35.1 In-Reply-To: <20220314112734.415677317@linuxfoundation.org> References: <20220314112734.415677317@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-3.5 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,RDNS_NONE,SPF_HELO_NONE,T_SCC_BODY_TEXT_LINE autolearn=unavailable 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 From: Krish Sadhukhan commit 5866e9205b47a983a77ebc8654949f696342f2ab upstream. In some hardware implementations, coherency between the encrypted and unencrypted mappings of the same physical page is enforced. In such a system, it is not required for software to flush the page from all CPU caches in the system prior to changing the value of the C-bit for a page. This hardware- enforced cache coherency is indicated by EAX[10] in CPUID leaf 0x8000001f. [ bp: Use one of the free slots in word 3. ] Suggested-by: Tom Lendacky Signed-off-by: Krish Sadhukhan Signed-off-by: Borislav Petkov Link: https://lkml.kernel.org/r/20200917212038.5090-2-krish.sadhukhan@oracle.com Signed-off-by: Liam Merwick Signed-off-by: Greg Kroah-Hartman --- arch/x86/include/asm/cpufeatures.h | 2 +- arch/x86/kernel/cpu/scattered.c | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) --- a/arch/x86/include/asm/cpufeatures.h +++ b/arch/x86/include/asm/cpufeatures.h @@ -96,7 +96,7 @@ #define X86_FEATURE_SYSCALL32 ( 3*32+14) /* "" syscall in IA32 userspace */ #define X86_FEATURE_SYSENTER32 ( 3*32+15) /* "" sysenter in IA32 userspace */ #define X86_FEATURE_REP_GOOD ( 3*32+16) /* REP microcode works well */ -/* free ( 3*32+17) */ +#define X86_FEATURE_SME_COHERENT ( 3*32+17) /* "" AMD hardware-enforced cache coherency */ #define X86_FEATURE_LFENCE_RDTSC ( 3*32+18) /* "" LFENCE synchronizes RDTSC */ #define X86_FEATURE_ACC_POWER ( 3*32+19) /* AMD Accumulated Power Mechanism */ #define X86_FEATURE_NOPL ( 3*32+20) /* The NOPL (0F 1F) instructions */ --- a/arch/x86/kernel/cpu/scattered.c +++ b/arch/x86/kernel/cpu/scattered.c @@ -41,6 +41,7 @@ static const struct cpuid_bit cpuid_bits { X86_FEATURE_MBA, CPUID_EBX, 6, 0x80000008, 0 }, { X86_FEATURE_SME, CPUID_EAX, 0, 0x8000001f, 0 }, { X86_FEATURE_SEV, CPUID_EAX, 1, 0x8000001f, 0 }, + { X86_FEATURE_SME_COHERENT, CPUID_EAX, 10, 0x8000001f, 0 }, { 0, 0, 0, 0, 0 } };