Received: by 2002:ac0:da4c:0:0:0:0:0 with SMTP id a12csp477384imi; Fri, 22 Jul 2022 03:16:28 -0700 (PDT) X-Google-Smtp-Source: AGRyM1uvYG958+tRnEFscFNZVYWRnc3MMm2KVnPpSgr1OFUB0zXtM8KSk+g5ja+WdenSXMU7Ecdk X-Received: by 2002:a63:5d0c:0:b0:41a:4856:e08e with SMTP id r12-20020a635d0c000000b0041a4856e08emr2644653pgb.218.1658484988524; Fri, 22 Jul 2022 03:16:28 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1658484988; cv=none; d=google.com; s=arc-20160816; b=qhDAX9BbnPvrgtFuqDavVCr4eQC/jOywj+eO5M05v9xpn5NQpDRWqf79EG9S9Jg16L rROExUbi8Ylhr8cScDZgCXLD+1S+x51uKIkW3mxjAaa4SUTv7qi6zliUclQFCkCcHc5s i9xiiWJ3cKswx6ZB4bjeNhGb7NnGuZNV8IXaawHhUdFagL6ADtgREGSUaNNvL/xayY43 OwLPjLWx2qe2rQY1wEeGoTU2Y0eC+M2O4c+uTQzg2gA2eDfWwfLNbDt77BiGm5X+s4cc z40DcxX5zQfZsq5oykUS5TVGb2yH3x0T2M9sHRGgUgzEniovyFmxRJvOst2ATl/Zy+TQ HhZA== 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=vS2GJEKulj7t1N2oYMYKiY8GsfboIiSMFPbI6J3CawY=; b=Yvmg8jiRsPS95+lwYk1DLOn+z+brlKqRdor4MWBhAwCPvj1iKN49rm41eN8oPtYnIu TCKVs2s6pjRNFFOk7sHx/DA4m4L2nzKWC72Fe1PeT4jgpUUJ8NCwBBKelIiJ9w1H3Spp 4Prc2hUqvTuWFfrpx4J0zjZf1moBMUDB4ctkNsha/YI3qYFxY6ePR2UP8sfjVITKc9zP D0w+LumjFSlmFWFHR9XtY0QKTFszIKvVoaUVImqu3r0pxkDQ3bY0DWEOLOKgr47LkhFA 1jtGUF2B3vQSN1Eg+fgtwDjYTOl/Ng6xsKHPJXIIPZeJID4kpZ1li+H2GyZIANb2/qsS qERQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=StMQW3zM; 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=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id v18-20020a056a00149200b005228c3285f6si6255705pfu.168.2022.07.22.03.16.12; Fri, 22 Jul 2022 03:16:28 -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=@linuxfoundation.org header.s=korg header.b=StMQW3zM; 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=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236402AbiGVJ0S (ORCPT + 99 others); Fri, 22 Jul 2022 05:26:18 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47426 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236287AbiGVJZt (ORCPT ); Fri, 22 Jul 2022 05:25:49 -0400 Received: from ams.source.kernel.org (ams.source.kernel.org [145.40.68.75]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 45760C5D6D; Fri, 22 Jul 2022 02:16:21 -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 ams.source.kernel.org (Postfix) with ESMTPS id 839DBB827C9; Fri, 22 Jul 2022 09:16:19 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id E408CC341C6; Fri, 22 Jul 2022 09:16:17 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1658481378; bh=zvjDX8b18xJxifx02nx4to4MscGcD0clud+Y979qlDs=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=StMQW3zM05b0A2lze7wyiIBzCml2WU+tIbTM5IINTUummlKoYdFSQAzGr1KHwv+it jKQ+wL7Ry7y7Gh+/gND1vUDzZW3R8eVvTYf4fOZxWTHcyQXMcbHXTzE/q1q1YvxyTL HlQE3mdk3DxUdPbD3EkaHoOM2cFc1uJhDuc/wyhM= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Thadeu Lima de Souza Cascardo , Borislav Petkov Subject: [PATCH 5.15 75/89] x86/bugs: Do not enable IBPB-on-entry when IBPB is not supported Date: Fri, 22 Jul 2022 11:11:49 +0200 Message-Id: <20220722091137.539782973@linuxfoundation.org> X-Mailer: git-send-email 2.37.1 In-Reply-To: <20220722091133.320803732@linuxfoundation.org> References: <20220722091133.320803732@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=-7.8 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_HI, SPF_HELO_NONE,SPF_PASS 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 From: Thadeu Lima de Souza Cascardo commit 2259da159fbe5dba8ac00b560cf00b6a6537fa18 upstream. There are some VM configurations which have Skylake model but do not support IBPB. In those cases, when using retbleed=ibpb, userspace is going to be killed and kernel is going to panic. If the CPU does not support IBPB, warn and proceed with the auto option. Also, do not fallback to IBPB on AMD/Hygon systems if it is not supported. Fixes: 3ebc17006888 ("x86/bugs: Add retbleed=ibpb") Signed-off-by: Thadeu Lima de Souza Cascardo Signed-off-by: Borislav Petkov Signed-off-by: Thadeu Lima de Souza Cascardo Signed-off-by: Greg Kroah-Hartman --- arch/x86/kernel/cpu/bugs.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) --- a/arch/x86/kernel/cpu/bugs.c +++ b/arch/x86/kernel/cpu/bugs.c @@ -858,7 +858,10 @@ static void __init retbleed_select_mitig break; case RETBLEED_CMD_IBPB: - if (IS_ENABLED(CONFIG_CPU_IBPB_ENTRY)) { + if (!boot_cpu_has(X86_FEATURE_IBPB)) { + pr_err("WARNING: CPU does not support IBPB.\n"); + goto do_cmd_auto; + } else if (IS_ENABLED(CONFIG_CPU_IBPB_ENTRY)) { retbleed_mitigation = RETBLEED_MITIGATION_IBPB; } else { pr_err("WARNING: kernel not compiled with CPU_IBPB_ENTRY.\n"); @@ -873,7 +876,7 @@ do_cmd_auto: boot_cpu_data.x86_vendor == X86_VENDOR_HYGON) { if (IS_ENABLED(CONFIG_CPU_UNRET_ENTRY)) retbleed_mitigation = RETBLEED_MITIGATION_UNRET; - else if (IS_ENABLED(CONFIG_CPU_IBPB_ENTRY)) + else if (IS_ENABLED(CONFIG_CPU_IBPB_ENTRY) && boot_cpu_has(X86_FEATURE_IBPB)) retbleed_mitigation = RETBLEED_MITIGATION_IBPB; }