From nobody Mon Dec 1 20:57:26 2025 Received: from mail.alien8.de (mail.alien8.de [65.109.113.108]) (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 779E12C326B for ; Mon, 1 Dec 2025 13:14:55 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=65.109.113.108 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764594899; cv=none; b=sSSFAqndKHkyYZ9V2ktCqAGkLrkHmUjPEeeXe83lnpeCkN80IEfVxs5NWyv7ZDaxtkPzpC2l7UFSMRYs4zsrqgpcoxrdnBf3M4npmqqikOjbLdqy5NAETGoGGka2qRvhntRQAbkXtyMXd2QwcukELPtwIkKOgm8BgAAVcTCoY0U= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764594899; c=relaxed/simple; bh=cf4lTnN0TTkre1RR2G6Q+EAmkAVXq32EfmaJVbk80RA=; h=Date:From:To:Cc:Subject:Message-ID:MIME-Version:Content-Type: Content-Disposition; b=LCyK4oTiv0Y9HBDTLwUvCPUqNCyFVdPDWVubeJziyf3YJFkWRzVLoWBdEs77kz/igru9JAfRAMBPKDqVJij9MsdPdUp6OLF2JzIZXtftlyrSG5k3B3EsgxUjgJHzDV5GmeLnXVkk/uSfxf1g967AZJrL/PSMaX6lia0MsXC15wE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=alien8.de; spf=pass smtp.mailfrom=alien8.de; dkim=pass (4096-bit key) header.d=alien8.de header.i=@alien8.de header.b=KGqA7h+S; arc=none smtp.client-ip=65.109.113.108 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=alien8.de Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=alien8.de Authentication-Results: smtp.subspace.kernel.org; dkim=pass (4096-bit key) header.d=alien8.de header.i=@alien8.de header.b="KGqA7h+S" Received: from localhost (localhost.localdomain [127.0.0.1]) by mail.alien8.de (SuperMail on ZX Spectrum 128k) with ESMTP id 95D0E40E0256; Mon, 1 Dec 2025 13:14:53 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at mail.alien8.de Authentication-Results: mail.alien8.de (amavisd-new); dkim=pass (4096-bit key) header.d=alien8.de Received: from mail.alien8.de ([127.0.0.1]) by localhost (mail.alien8.de [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id y0VLLSy8iuby; Mon, 1 Dec 2025 13:14:50 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=alien8.de; s=alien8; t=1764594888; bh=bhhX+8jv6oeAOypYEwjZWs1sm1afgLfVI8TcMAbTK/w=; h=Date:From:To:Cc:Subject:From; b=KGqA7h+SO2SX8OPiWLBbLMbYpbcQxu2GWOTsrshgqzyudHeQEf0hP2iroZRVNdSpE gGJV4nnKAhMQX7ZgYokw15nYttMjdvkJFOeSGAFTP5vaQ8369O4/b7J7+ysW0NE+wJ sPACTiSPVe8QB+dNPnKUmZ/tqGgPijFa+OYYxO1UGrCe3/2GgusHxsbjsDxACW50IW xFC99B9zI8JrQLP12P1shiZUHWs0b58MkF+yIAab6cekWFj35N6ch5BwWg4XMalmg/ avJ2rOQFhxBY2zSJ0NnhtGt3U+Mp3hXl1EFiQjOHGoNnNMyP6n18d7zH8ZLCk3ltO1 Ptb9S+1ot/bZgWBnm1EeXExqS+hhP+P5eeLlnC8nxsOe+bLP2TReYkSFjaLkKOee3r ctbDxU05lKx3pQqqM4y902u5HurK2fFTYW4iUZg6Syq1L2oRcebJKq9ZLHP9LX1uiy zAV+V5qloq9zUNJ+fKAfPFmTpNhdHk/cAOcb2/GaXryeuO49k+7v+gzJXpFTbJbDZO xC+8rnfmF9Yn+dlVYlVUZB11MBH0JVJ6jWXG2jWjDZNPVpEqJ+KNA1pRj7zvhjfKFz d8F099ly9Jf0YUHEP3Eqbvr8FxcgtK5Ouik+3jYLxIKGweV/2YLDMYTZle+4ifycT8 Z7NIByKbx5GAeVbrMhjP3ISQ= Received: from zn.tnic (pd953063a.dip0.t-ipconnect.de [217.83.6.58]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-256) server-signature ECDSA (P-256) server-digest SHA256) (No client certificate requested) by mail.alien8.de (SuperMail on ZX Spectrum 128k) with UTF8SMTPSA id 689FC40E0218; Mon, 1 Dec 2025 13:14:45 +0000 (UTC) Date: Mon, 1 Dec 2025 14:14:37 +0100 From: Borislav Petkov To: Linus Torvalds Cc: x86-ml , lkml Subject: [GIT PULL] x86/microcode for v6.19-rc1 Message-ID: <20251201131437.GAaS2Uvak9SqT1BOkJ@fat_crate.local> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Hi Linus, please pull the x86/microcode lineup for v6.19-rc1. There will be a merge conflict with your tree because we had to expedite urgent fixes. The resolution - at the end of this message - consists basically of three n= ew microcode revisions getting added to the Entrysign cutoff check. Thx. --- The following changes since commit 84dfce65a7ae7b11c7b13285a1b23e9a94ad37b7: x86/bugs: Remove dead code which might prevent from building (2025-10-24 = 09:42:00 -0700) are available in the Git repository at: ssh://git@gitolite.kernel.org/pub/scm/linux/kernel/git/tip/tip tags/x86_m= icrocode_for_v6.19_rc1 for you to fetch changes up to ca8313fd83399ea1d18e695c2ae9b259985c9e1f: x86/microcode: Mark early_parse_cmdline() as __init (2025-10-30 14:33:31 = +0100) ---------------------------------------------------------------- - Add microcode staging support on Intel: it moves the sole microcode blobs loading to a non-critical path so that microcode loading latencies are kept at minimum. The actual "directing" the hardware to load microcode is the only step which is done on the critical path. This scheme is also opportunistic as in: on a failure, the machinery falls back to normal loading - Add the capability to the AMD side of the loader to select one of two per-family/model/stepping patches: one is pre-Entrysign and the other is post-Entrysign; with the goal to take care of machines which haven't updated their BIOS yet - something they should absolutely do as this is the only proper Entrysign fix - Other small cleanups and fixlets ---------------------------------------------------------------- Borislav Petkov (AMD) (2): Merge tag 'x86_urgent_for_v6.18_rc3' into x86/microcode x86/microcode/AMD: Select which microcode patch to load Chang S. Bae (7): x86/cpu/topology: Make primary thread mask available with SMP=3Dn x86/microcode: Introduce staging step to reduce late-loading time x86/microcode/intel: Establish staging control logic x86/microcode/intel: Define staging state struct x86/microcode/intel: Implement staging handler x86/microcode/intel: Support mailbox transfer x86/microcode/intel: Enable staging when available Yu Peng (1): x86/microcode: Mark early_parse_cmdline() as __init arch/x86/include/asm/msr-index.h | 10 + arch/x86/include/asm/topology.h | 12 +- arch/x86/kernel/cpu/microcode/amd.c | 107 +++++---- arch/x86/kernel/cpu/microcode/core.c | 13 +- arch/x86/kernel/cpu/microcode/intel.c | 362 +++++++++++++++++++++++++++= ++++ arch/x86/kernel/cpu/microcode/internal.h | 4 +- arch/x86/kernel/cpu/topology.c | 4 - arch/x86/kernel/cpu/topology_common.c | 3 + arch/x86/kernel/smpboot.c | 3 - 9 files changed, 465 insertions(+), 53 deletions(-) --- Merge resolution: commit e5e36163483b2f2284e9feebf12c684be3f7d74c (HEAD -> refs/heads/test) Merge: 577411b0a957 ca8313fd8339 Author: Borislav Petkov (AMD) Date: Mon Dec 1 13:44:29 2025 +0100 Merge tag 'x86_microcode_for_v6.19_rc1' into test =20 - Add microcode staging support on Intel: it moves the sole microcode blobs loading to a non-critical path so that microcode loading latencies are kept at minimum. The actual "directing" the hardware to load microcode is the only step which is done on the critical path. This scheme is also opportunistic as in: on a failure, the machinery falls back to normal loading =20 - Add the capability to the AMD side of the loader to select one of two per-family/model/stepping patches: one is pre-Entrysign and the other is post-Entrysign; with the goal to take care of machines which haven't updated their BIOS yet - something they should absolutely do as this is the only proper Entrysign fix =20 - Other small cleanups and fixlets =20 Signed-off-by: Borislav Petkov (AMD) =20 Conflicts: arch/x86/kernel/cpu/microcode/amd.c diff --cc arch/x86/kernel/cpu/microcode/amd.c index a881bf4c2011,8d3d1114881b..3821a985f4ff --- a/arch/x86/kernel/cpu/microcode/amd.c +++ b/arch/x86/kernel/cpu/microcode/amd.c @@@ -186,8 -186,50 +186,53 @@@ static u32 cpuid_to_ucode_rev(unsigned=20 return p.ucode_rev; } =20 + static u32 get_cutoff_revision(u32 rev) + { + switch (rev >> 8) { + case 0x80012: return 0x8001277; break; + case 0x80082: return 0x800820f; break; + case 0x83010: return 0x830107c; break; + case 0x86001: return 0x860010e; break; + case 0x86081: return 0x8608108; break; + case 0x87010: return 0x8701034; break; + case 0x8a000: return 0x8a0000a; break; + case 0xa0010: return 0xa00107a; break; + case 0xa0011: return 0xa0011da; break; + case 0xa0012: return 0xa001243; break; + case 0xa0082: return 0xa00820e; break; + case 0xa1011: return 0xa101153; break; + case 0xa1012: return 0xa10124e; break; + case 0xa1081: return 0xa108109; break; + case 0xa2010: return 0xa20102f; break; + case 0xa2012: return 0xa201212; break; + case 0xa4041: return 0xa404109; break; + case 0xa5000: return 0xa500013; break; + case 0xa6012: return 0xa60120a; break; + case 0xa7041: return 0xa704109; break; + case 0xa7052: return 0xa705208; break; + case 0xa7080: return 0xa708009; break; + case 0xa70c0: return 0xa70C009; break; + case 0xaa001: return 0xaa00116; break; + case 0xaa002: return 0xaa00218; break; + case 0xb0021: return 0xb002146; break; ++ case 0xb0081: return 0xb008111; break; + case 0xb1010: return 0xb101046; break; + case 0xb2040: return 0xb204031; break; + case 0xb4040: return 0xb404031; break; ++ case 0xb4041: return 0xb404101; break; + case 0xb6000: return 0xb600031; break; ++ case 0xb6080: return 0xb608031; break; + case 0xb7000: return 0xb700031; break; + default: break; +=20 + } + return 0; + } +=20 static bool need_sha_check(u32 cur_rev) { + u32 cutoff; +=20 if (!cur_rev) { cur_rev =3D cpuid_to_ucode_rev(bsp_cpuid_1_eax); pr_info_once("No current revision, generating the lowest one: 0x%x\n", = cur_rev); --=20 Regards/Gruss, Boris. https://people.kernel.org/tglx/notes-about-netiquette