From nobody Fri Jun 5 22:39:15 2026 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4gXGZc4wh7z6gfxv for ; Fri, 05 Jun 2026 22:39:20 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gXGZc3YkXz3Zn2 for ; Fri, 05 Jun 2026 22:39:20 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1780699160; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=w7J1DRXP9/qhaZbeOgLaNhCXiZFd/FJJlx6+iuD2ibk=; b=ZralAV6EQD+tHtWjWpSlYmivJHVVMZIdreAaHuyROc4gq+9cY2oGAHaIPKPpWpR35aJaW4 7csEdrwLVOvoxkuPdR1YzrUxbFv8kxeSbT9WbYbT13ljgYzkymmY13TbSB4AmTzQij05V6 Cb0BOuivitZ9aWhfgFuVB4PbdnQnO5PdN5bf8iKCeVVsEDpxIRvZaCamZZtjW8ZHXnD4nB AZFncgy+JrH7Lb74ymwSmOANwPCcd7G+BaDhQLzmMC3CgdG8/Nmr6+P0UFotZH4hd6F+EO Ys/CEhUa+58Z7jZbIjusIJaDaD6VuVCXTUefuX1I6z922W3Pdq1drGx4RQHiJQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1780699160; a=rsa-sha256; cv=none; b=AcdkUhvNwZZrI1RlQNtNIj7pPLlR9nk4w5YQ7oNUtVUP9OumrceNtHn9hSx3yFfNDUAl59 UkX8i4tissAmb1f0AoC0Bd3Y/dmyGs46YSC2NdxjDkVkUIMGcQETy8V59Ui7n6pQGhKh4i DwJwbRKG1OS46/k+KdjlcecPF+ahRalZo09850gotA7p2aNNOZ6v6EMjHRb8NbMMtGSloU tz04P4RMCrtdrADzIcoh6XSF1A83BsEZmYfzAp2dUAPOoOV8Bm2s+dLcY6RGWvlvTpcGDA 9X71St7rVnVmMzK/BpAtibp9gg6WfWsfANtSJbOieeoaEISZxCfPSniuIg82TA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1780699160; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=w7J1DRXP9/qhaZbeOgLaNhCXiZFd/FJJlx6+iuD2ibk=; b=Tq+/2GSTI1IUsHVU4MDB8X7M8uH2qgYLpMNHbBhd0HT02JG9/RzJvE/d+Kgtgi6h1791DF gwPdh0JkBkanJnUUGqbgX/lTUvScEJZ699dGW7sswzgpicpTnNUTB/Jbi6+I/JDs/8l1vZ cmqSWORx/L81Fptr/MPGLcR5dWQsJgzitD0u2rXNOrK0IwzZGvK1c6BlqRprWAn5Icg7I8 zV0BaR9N4ZJ2+wJoIvqcGyJEceO67gL9HdBhzkw2McVoeCzJ9zKm16QKdELYNdImn5dKhU ablvB1nmKD76sqF1mE158QF0ZKZw92pzMTHm/4UwEftkvIqVgC7xmgf9c0vrFw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gXGZc2rXMzpxm for ; Fri, 05 Jun 2026 22:39:20 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 1fa13 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Fri, 05 Jun 2026 22:39:15 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: Konstantin Belousov From: Colin Percival Subject: git: e27261d80594 - releng/15.1 - amd64: there is no reason to copy ucode around in ucode_load_bsp() List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org List-Id: List-Post: List-Help: List-Subscribe: List-Unsubscribe: List-Owner: Precedence: list MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: cperciva X-Git-Repository: src X-Git-Refname: refs/heads/releng/15.1 X-Git-Reftype: branch X-Git-Commit: e27261d80594f32eefb7562989a4836cb81ba262 Auto-Submitted: auto-generated Date: Fri, 05 Jun 2026 22:39:15 +0000 Message-Id: <6a235013.1fa13.1a3a69f@gitrepo.freebsd.org> The branch releng/15.1 has been updated by cperciva: URL: https://cgit.FreeBSD.org/src/commit/?id=e27261d80594f32eefb7562989a4836cb81ba262 commit e27261d80594f32eefb7562989a4836cb81ba262 Author: Konstantin Belousov AuthorDate: 2026-05-30 15:57:46 +0000 Commit: Colin Percival CommitDate: 2026-06-05 22:38:47 +0000 amd64: there is no reason to copy ucode around in ucode_load_bsp() Approved by: re (cperciva) PR: 294630 (cherry picked from commit 16f21c5af35002b8361ffb2e83ff3c92cd899a3a) (cherry picked from commit c6ccef4a32b4e09927dfdcc0f734af25c6193f5a) --- sys/x86/x86/ucode.c | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/sys/x86/x86/ucode.c b/sys/x86/x86/ucode.c index 72133de211f8..613a7b03489f 100644 --- a/sys/x86/x86/ucode.c +++ b/sys/x86/x86/ucode.c @@ -361,18 +361,20 @@ ucode_load_ap(int cpu) (void)ucode_loader->load(ucode_data, UNSAFE, NULL, NULL); } -static void * -map_ucode(uintptr_t free, size_t len) +static const void * +map_ucode(const void *match, uintptr_t free, size_t len) { #ifdef __i386__ uintptr_t va; for (va = free; va < free + len; va += PAGE_SIZE) pmap_kenter(va, (vm_paddr_t)va); + memcpy_early(free, match, len); + return ((const void *)free); #else (void)len; + return (match); #endif - return ((void *)free); } static void @@ -405,7 +407,7 @@ ucode_load_bsp(uintptr_t free) char vendor[13]; } cpuid; const uint8_t *fileaddr, *match; - uint8_t *addr; + const uint8_t *addr; char *type; uint64_t nrev, orev; caddr_t file; @@ -440,14 +442,10 @@ ucode_load_bsp(uintptr_t free) len = preload_fetch_size(file); match = ucode_loader->match(fileaddr, &len); if (match != NULL) { - addr = map_ucode(free, len); - /* We can't use memcpy() before ifunc resolution. */ - memcpy_early(addr, match, len); - match = addr; - - error = ucode_loader->load(match, EARLY, &nrev, &orev); + addr = map_ucode(match, free, len); + error = ucode_loader->load(addr, EARLY, &nrev, &orev); if (error == 0) { - ucode_data = early_ucode_data = match; + ucode_data = early_ucode_data = addr; ucode_nrev = nrev; ucode_orev = orev; return (len);