From nobody Thu Feb 19 12:29:31 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 4fGt3w3pzdz6QRRQ for ; Thu, 19 Feb 2026 12:29:32 +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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fGt3v6cXjz3TDd for ; Thu, 19 Feb 2026 12:29:31 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771504171; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=de+tmP6NdzfLniAx9D+k8iM7HM8uWb7KhjJUj2bn4UQ=; b=CZ0N8mQgYiyc1rW2mTE/5gdEW3P3Clai0L0Q/E7yFgmrvCbK7cwFcvf41Dtyeg37gS0GIg wNqpvw1g59myvl0dIssDc5XgAy5Moj2ZyQziA5ohTHTOcKlcJZHeXvdd9vmNAgIrM0LcTX sFIMauXm5+j8dC/w3lPWLWAg9fHae2/629pwuTdLVvVkKQEHXl020QOhkbRRTAYJHpVaJg WAW9/1UNZ+epoF6jX2ndr/dv5XzBLRmKLJefCFcF4eywjqIFC0zvGBXLhyW1s5LO/aDs// XXXJCnYSebB4xRkC6Fv0SPGMEM7msJOsJe8CQWCBnqCW4ijNfdvJEJ0oS9tr+g== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771504171; a=rsa-sha256; cv=none; b=XOsgGDRcpc4lfwaJ/Uu2ks9TTlLcnZAMPIt8KeZsYNCIplPQuRDp4s+u/JsIk7cipyPAJ8 Up4o8O9VqCtPEFIy9XfzAwcZcSef+lo6+Oxm4IDEZXlA6XPATGT/vh0YH8p32XPy+DH08M 7yBZdOUKw7qeXbFhOzdF2fqA1WrCOHEC9lz7jSwwRvEVqIS/AS6RrJgLYxmkZONlYIiEYt +s0J7V1dryqENAMvBkvBK035p2BDDLrgWZVohly63z5zxbNbdq3HN1w0I8MRrUvgRsw6WZ YW0CWdYQ9M2LM/YE7oOxBULBWeJtjHiCEz30LApWLTqj6tmuV6bofYX4Zm9SEw== 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=1771504171; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=de+tmP6NdzfLniAx9D+k8iM7HM8uWb7KhjJUj2bn4UQ=; b=a66kosQ7XR7KOuEUScNrAS6SH2Nwwphlq0V2pz+iFjh9KxMQEV5DHRX0B05MixC3grXGP2 3jd37ngsJCm5EoKgRpcYrUm1gejWp4CIEeR8VJnU5mdZruYiPIqW7BG20MeM3i/oW/BzTc huIr9+wO3/nsTtzxRhl5bbjakDbFQ6W8MOX28rGuavfq3oX5mlSvxTHhh/ypY34kzPnmRv 6j0xqRHim743yGcu1eA6CTAV+sZ6oqXNuTveRCvf9n6FAyKqm56csVpCzh2FnNM9awBfuD fVTIWWlN2dOUYetOBW7GtcijDUv7t/hekDtCZDabw6dAGFpcRbSl6jE76nEeQA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fGt3v64qvzj22 for ; Thu, 19 Feb 2026 12:29:31 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 399ba by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Thu, 19 Feb 2026 12:29:31 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Olivier Certner Subject: git: 9f48e72c350c - stable/15 - x86: x86_msr_op(): MSR_OP_LOCAL: Disable interrupts on atomic ops 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 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: olce X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 9f48e72c350c941052a3dc8d09bc4be3704a5d44 Auto-Submitted: auto-generated Date: Thu, 19 Feb 2026 12:29:31 +0000 Message-Id: <6997022b.399ba.689988bf@gitrepo.freebsd.org> The branch stable/15 has been updated by olce: URL: https://cgit.FreeBSD.org/src/commit/?id=9f48e72c350c941052a3dc8d09bc4be3704a5d44 commit 9f48e72c350c941052a3dc8d09bc4be3704a5d44 Author: Olivier Certner AuthorDate: 2026-01-23 20:52:46 +0000 Commit: Olivier Certner CommitDate: 2026-02-19 12:28:51 +0000 x86: x86_msr_op(): MSR_OP_LOCAL: Disable interrupts on atomic ops On MSR_OP_LOCAL and non-naturally-atomic operations (MSR_OP_ANDNOT and MSR_OP_OR), there is no guarantee that we are not interrupted between reading and writing the MSR, and that interruption could actually perform some operation on that MSR, which would be lost. Prevent that problem by temporarily disabling interrupts around MSR manipulation. Reviewed by: kib Discussed with: markj MFC after: 2 weeks Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D54996 (cherry picked from commit e5f8cbb86d58f25b5ff168506b78d09dca266fb6) --- sys/x86/include/x86_var.h | 2 ++ sys/x86/x86/cpu_machdep.c | 3 +++ 2 files changed, 5 insertions(+) diff --git a/sys/x86/include/x86_var.h b/sys/x86/include/x86_var.h index 701b982e6afb..215fe0562465 100644 --- a/sys/x86/include/x86_var.h +++ b/sys/x86/include/x86_var.h @@ -171,6 +171,8 @@ uint64_t rdtsc_ordered(void); /* * Where and which execution mode + * + * All modes cause execution on the target CPU(s) with interrupts disabled. */ #define MSR_OP_LOCAL 0x10000000 #define MSR_OP_SCHED_ALL 0x20000000 diff --git a/sys/x86/x86/cpu_machdep.c b/sys/x86/x86/cpu_machdep.c index 5cbcb40540bb..5f8965bd5614 100644 --- a/sys/x86/x86/cpu_machdep.c +++ b/sys/x86/x86/cpu_machdep.c @@ -160,6 +160,7 @@ x86_msr_op(u_int msr, u_int op, uint64_t arg1, uint64_t *res) struct thread *td; struct msr_op_arg a; cpuset_t set; + register_t flags; u_int exmode; int bound_cpu, cpu, i, is_bound; @@ -171,7 +172,9 @@ x86_msr_op(u_int msr, u_int op, uint64_t arg1, uint64_t *res) switch (exmode) { case MSR_OP_LOCAL: + flags = intr_disable(); x86_msr_op_one(&a); + intr_restore(flags); break; case MSR_OP_SCHED_ALL: td = curthread;