From nobody Tue Dec 16 02:25:40 2025 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D9BA21C8634 for ; Thu, 27 Mar 2025 21:03:53 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.165.32 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1743109436; cv=none; b=gWtj3oYpiNjW57BrdTqgpmzQ9KrD6u+nceBnmpf8bSJImLWB8Zwf0RuFJB3YMLHI9oAQMfslGfFGsEcXvHiMg0QfxS+dXwKppAYIUar8lgigrSAUZOUZhtLcYQl5yU64eyHPxoy4S8tOMWnu6UOojHSHzEaJPd5fiBnhqrC1I9E= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1743109436; c=relaxed/simple; bh=Fq5RPeP3gRNpdG2hzkrcEqaIDf/0+EsYC+SVZ+O+SMs=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=TefrFrQoT6QrZAwuPRAIkvCrF5DRwGObpYabft1bRRqnArabnbhsCBWzoY8TOf+jQmKn2pn+jdXI6Y8dbs+CcllAVpI6exK42/qVIxzq3LKZZ6yLlg0W7JWUlMmTQG2MzuYnRWXCkT37Xvm0jeuHTtDA/qfBiZUbNd1iylXgaVU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com; spf=pass smtp.mailfrom=oracle.com; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b=W+LpcG8H; arc=none smtp.client-ip=205.220.165.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oracle.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b="W+LpcG8H" Received: from pps.filterd (m0246627.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 52RJu7rQ028357; Thu, 27 Mar 2025 21:03:29 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=corp-2023-11-20; bh=1kOan 1MEwIc+R98iNUHZL4R6nmc6Q6LTwX431Naq5Xg=; b=W+LpcG8HeZVjGVILSxOwU MQTXEAa5OijZOfSgxDV7WVJv+EfpTRMY55STksZ78wUy4FLHTrOPFSv/Pdmnf+bG CgGu1HFZPNcsgCBGrMM9fUf75wAP0Wa4BrAjgjGv/SNGTTq0dCO8twWoCSswvqnu ZAqI4MrM/tciIbsb7tiirGn4ugO0MkCXtRqMrYq/TKWNI9TB7xtUY1zGZLx1wXVw EB/VvSLd1wR8ez18J4MzjqGl45RsPguAoIAzSneoeHVPaF1ELF4IDBrmg7200R7F nbfu61I4zGVl3egOA1ogti0ojaQzF5aN66OECuX1Fxiv5pxO9a14bRSSDmXuutbS g== Received: from iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta02.appoci.oracle.com [147.154.18.20]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 45hn7dwpv2-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 27 Mar 2025 21:03:29 +0000 (GMT) Received: from pps.filterd (iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (8.18.1.2/8.18.1.2) with ESMTP id 52RKeCfo022884; Thu, 27 Mar 2025 21:03:28 GMT Received: from bostrovs-home.us.oracle.com (bostrovs-home.allregionaliads.osdevelopmeniad.oraclevcn.com [100.100.254.198]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTP id 45jjch6mpa-2; Thu, 27 Mar 2025 21:03:28 +0000 From: Boris Ostrovsky To: linux-kernel@vger.kernel.org Cc: bp@alien8.de, tglx@linutronix.de, mingo@redhat.com, dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com Subject: [PATCH 1/2] x86/microcode/AMD: Fix __apply_microcode_amd()'s return value Date: Thu, 27 Mar 2025 17:03:04 -0400 Message-ID: <20250327210305.1694664-2-boris.ostrovsky@oracle.com> X-Mailer: git-send-email 2.43.5 In-Reply-To: <20250327210305.1694664-1-boris.ostrovsky@oracle.com> References: <20250327210305.1694664-1-boris.ostrovsky@oracle.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1095,Hydra:6.0.680,FMLib:17.12.68.34 definitions=2025-03-27_04,2025-03-27_02,2024-11-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0 phishscore=0 suspectscore=0 adultscore=0 malwarescore=0 spamscore=0 mlxlogscore=999 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2502280000 definitions=main-2503270142 X-Proofpoint-GUID: zpKHM8InmKoYicHyoM0_bjtLp_6wlPQo X-Proofpoint-ORIG-GUID: zpKHM8InmKoYicHyoM0_bjtLp_6wlPQo Content-Type: text/plain; charset="utf-8" When verify_sha256_digest() fails, __apply_microcode_amd() should propagate the failure by returning false (and not -1 which is promoted to true) Fixes: 50cef76d5cb0 ("x86/microcode/AMD: Load only SHA256-checksummed patch= es") Signed-off-by: Boris Ostrovsky --- arch/x86/kernel/cpu/microcode/amd.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/x86/kernel/cpu/microcode/amd.c b/arch/x86/kernel/cpu/micr= ocode/amd.c index 138689b8e1d8..b61028cf5c8a 100644 --- a/arch/x86/kernel/cpu/microcode/amd.c +++ b/arch/x86/kernel/cpu/microcode/amd.c @@ -600,7 +600,7 @@ static bool __apply_microcode_amd(struct microcode_amd = *mc, u32 *cur_rev, unsigned long p_addr =3D (unsigned long)&mc->hdr.data_code; =20 if (!verify_sha256_digest(mc->hdr.patch_id, *cur_rev, (const u8 *)p_addr,= psize)) - return -1; + return false; =20 native_wrmsrl(MSR_AMD64_PATCH_LOADER, p_addr); =20 --=20 2.43.5 From nobody Tue Dec 16 02:25:40 2025 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D426217C220 for ; Thu, 27 Mar 2025 21:03:53 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.177.32 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1743109436; cv=none; b=Rima4+qU5VmxVsvGiht02vJ1gIZnWZL2tBGYKR5SWHLDd/p2da+DmI17eRx1O2evia6MGWIPRW8jZSAcr6SHZf73i622EI9a9CpK9uHK/pEjrAJ5mU0czbV5plB9m5GS9ocVIEF1Q7pBSthtbzHAKxfRoy0WEKFaF4yWWqt4Eug= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1743109436; c=relaxed/simple; bh=u7ZDKvtT4hs1CYe7KiMi83zvkdUdVvfFErbJM6pAGXc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=LB0cVM6bnwA3PxPvQIVW+q0nFVg3wJcSAN0TnQM6x/L5XAx1xQ626t85Q2kVOKG/dzanvx0RA1vGwWx4OyHF+EKKiYhwHHuXIZiNdvrmW9/kNVu4N02IABNoRsZPabtuzEo7bBrCBEkNMRpWuIhRW3UwkG57TXDhHgQZD0kuU08= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com; spf=pass smtp.mailfrom=oracle.com; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b=fOGjGjfP; arc=none smtp.client-ip=205.220.177.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oracle.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b="fOGjGjfP" Received: from pps.filterd (m0246630.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 52RJtwOj012361; Thu, 27 Mar 2025 21:03:29 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=corp-2023-11-20; bh=j3Njc Gv1JSYvnCYGX3BdR9Mcr/HGCCCZbFP4dwVX9Vc=; b=fOGjGjfPklZStWGtSlKfj q9TXMVltCI+UwFpo0qf3B7Jp6bUC9uasu/K8Qqdwd3ae4Bol/o5VjRiaYDojc5np KgRKlTwPZr2q1M/asVUrVl7fauq14ggYrDrMaBRXize5kowIGlrVyT2QZiyiFt3A gr8l8p3QFQDp3J42swcqGDYBliy+NbP91KY/AZshhyTLKHFRML46k8N9fV4lW+7/ HwqyIlwwEV40inpaIgZMG7iMTCgvuaFgd4ABBdGH1o8L+fhnrxR4aGxkIpMxB2mW c/QS8v7Be0gajN6tDZUd083VoT9w321P6QYRwTUZpMvzRFrc9FSbhRzz83k/v9RD w== Received: from iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta02.appoci.oracle.com [147.154.18.20]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 45hnd6dgc9-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 27 Mar 2025 21:03:29 +0000 (GMT) Received: from pps.filterd (iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (8.18.1.2/8.18.1.2) with ESMTP id 52RKeCfq022884; Thu, 27 Mar 2025 21:03:28 GMT Received: from bostrovs-home.us.oracle.com (bostrovs-home.allregionaliads.osdevelopmeniad.oraclevcn.com [100.100.254.198]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTP id 45jjch6mpa-3; Thu, 27 Mar 2025 21:03:28 +0000 From: Boris Ostrovsky To: linux-kernel@vger.kernel.org Cc: bp@alien8.de, tglx@linutronix.de, mingo@redhat.com, dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com Subject: [PATCH 2/2] x86/microcode/AMD: Clean the cache if update did not load microcode Date: Thu, 27 Mar 2025 17:03:05 -0400 Message-ID: <20250327210305.1694664-3-boris.ostrovsky@oracle.com> X-Mailer: git-send-email 2.43.5 In-Reply-To: <20250327210305.1694664-1-boris.ostrovsky@oracle.com> References: <20250327210305.1694664-1-boris.ostrovsky@oracle.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1095,Hydra:6.0.680,FMLib:17.12.68.34 definitions=2025-03-27_04,2025-03-27_02,2024-11-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0 phishscore=0 suspectscore=0 adultscore=0 malwarescore=0 spamscore=0 mlxlogscore=999 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2502280000 definitions=main-2503270142 X-Proofpoint-ORIG-GUID: orSzZ4EvI3ArfKYVJyrSx0iNHudwmfDJ X-Proofpoint-GUID: orSzZ4EvI3ArfKYVJyrSx0iNHudwmfDJ Content-Type: text/plain; charset="utf-8" If microcode did not get loaded there is no reason to keep it in the cache. Moreover, if loading failed it will not be possible to load an earlier version of microcode since failed version will always be selected from the cache on next reload attempt. Since failed version is not easily avaialble at this point just clean the whole cache. It will be rebuilt later if needed. Signed-off-by: Boris Ostrovsky --- arch/x86/kernel/cpu/microcode/amd.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/arch/x86/kernel/cpu/microcode/amd.c b/arch/x86/kernel/cpu/micr= ocode/amd.c index b61028cf5c8a..57bd61f9c69b 100644 --- a/arch/x86/kernel/cpu/microcode/amd.c +++ b/arch/x86/kernel/cpu/microcode/amd.c @@ -1171,11 +1171,18 @@ static void microcode_fini_cpu_amd(int cpu) uci->mc =3D NULL; } =20 +static void finalize_late_load_amd(int result) +{ + if (result) + cleanup(); +} + static struct microcode_ops microcode_amd_ops =3D { .request_microcode_fw =3D request_microcode_amd, .collect_cpu_info =3D collect_cpu_info_amd, .apply_microcode =3D apply_microcode_amd, .microcode_fini_cpu =3D microcode_fini_cpu_amd, + .finalize_late_load =3D finalize_late_load_amd, .nmi_safe =3D true, }; =20 --=20 2.43.5