From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pl1-f202.google.com (mail-pl1-f202.google.com [209.85.214.202]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 56F0B38D401 for ; Tue, 9 Jun 2026 21:16:25 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.202 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781039786; cv=none; b=mRW1oEjSdKSFMmo9n6P6JEJQ9qSrGYDxDKvEIe8rRxumhYRsUBUcU8lPyhictA7NPqfSDeyKGDVQDJd/fQEtmN9t5/y6v0IxDBwiXaNEsburuBjyDLIg6g2+vFxs6kJ8B+T6c8S97Ry/31lx26QZRvJasElYcl0/OzZO0HOHEBo= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781039786; c=relaxed/simple; bh=FjrB1hzNmrisJCYz3Gf2kVS32vCy3mcu6CSFV3GYXr0=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Cc:Content-Type; b=GjK50umEfZ+pjbh+a1veEfi5vQaKWkUCj2pU42xNUW/VdfvN13UysfM5CjIE3Q9Y4zgWszu62ONm4mZPmJSrMWoh5evjnHDStyGHb+F73uPzZivo089lU+lOqHdgD8M9XFu/2iSEAvFAtKqSUzp3fsAJqrbUS4GB1UopZLqH5wQ= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com; spf=pass smtp.mailfrom=flex--jmattson.bounces.google.com; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b=HsW1+c2a; arc=none smtp.client-ip=209.85.214.202 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=flex--jmattson.bounces.google.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="HsW1+c2a" Received: by mail-pl1-f202.google.com with SMTP id d9443c01a7336-2bf30576aa3so42620055ad.3 for ; Tue, 09 Jun 2026 14:16:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20251104; t=1781039785; x=1781644585; darn=vger.kernel.org; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:from:to:cc:subject:date:message-id:reply-to; bh=n6a0rVVDeDWgOFxvBkk+Z/f94zl+rWrcf+T2DAiyflE=; b=HsW1+c2ab+ofrxlKLKQK7ZKTrZGQCCx5CM6d2ffKx2Qyn5IP61VGVF0t6J5njcHmVu QYCj+HfBMuVCS3Mf0kTnTB+e+YeDsBtuL2tFQFU6aNxTAa9bQdt1gQsCZ+aOtIrXuHjo kAovmEVmP/x4BBvgmDAB80tD99W4+m0FbHgD2IDc/ROzz4A8VEbxg+nZJToUt36PMHgM BYUPV9Ewfr8gZQF4Lij3ivf9HIUtKK2kDxUvziVv+Ww+dr4kR1zh29xQ1ue9iYIdzCrZ EB7siIyW5467PWlGbk0pyQa/eVQqK/A4Jk7HoZcPzjukzzCwNr2p45PaZBth69ehdYkm jB1Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781039785; x=1781644585; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=n6a0rVVDeDWgOFxvBkk+Z/f94zl+rWrcf+T2DAiyflE=; b=ou2i7lHBGHIPnND2ziQcv7cTe1GZDMlmw/vWn8L0a72rFBr0kVjCI02GCxJY2X6jj2 fkku+EY4xaLuzoMTGbjmG3LqjRHsvyCLpbFwpCQB0BwB3ByGAk6Kd42QatXa/PoZgz9Y FpAQX4/KMnMl/8ZH6qIdmjTfTnWamlGsH5TkDINTymYvJduiw/KFvB6L2T4l1s92MTpX zQIVdje4E50HvMmeL+7+P0/9NQz8FPPoU4VK9MnMoYOtPC/D5CLcpbygcE2vDM+2LRHR ZmaXmSAXz/s3vk0kVMOo09cJwh8QqRdcZ56QCU/c9CxzzVGFwZsNkE5vdiWH8HYPP+Rs BTcw== X-Forwarded-Encrypted: i=1; AFNElJ90ap3/8XKNvzNgVXCAYS3fUzdASZQFWrZ52kuYB20TE/ZCyddvBqpLM/t7QLaX/lzdM87XTOB2NWPGo1o=@vger.kernel.org X-Gm-Message-State: AOJu0YzIxfLDlew5kknhLKVXHSKOqn+ZHHb7hikNmXL0Jbq4sJiSzo/b adYtc09Xh1nGKXiGKEuHIiTmsXFmYFSuV2BHvPetzkFTZWRjkbeziiucfPsy5L++Vapfd9LeUH3 anWDZGjeqRoO8Pw== X-Received: from plae21.prod.google.com ([2002:a17:902:e0d5:b0:2bc:bb08:92dc]) (user=jmattson job=prod-delivery.src-stubby-dispatcher) by 2002:a17:903:2449:b0:2bf:11ed:3d64 with SMTP id d9443c01a7336-2c2a1c66be4mr57203965ad.18.1781039784364; Tue, 09 Jun 2026 14:16:24 -0700 (PDT) Date: Tue, 9 Jun 2026 14:15:47 -0700 In-Reply-To: <20260609211611.466231-1-jmattson@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20260609211611.466231-1-jmattson@google.com> X-Mailer: git-send-email 2.54.0.1099.g489fc7bff1-goog Message-ID: <20260609211611.466231-2-jmattson@google.com> Subject: [PATCH 1/1] x86/CPU/AMD: Avoid racy updates to MSR_K7_HWCR in set_cpuid_faulting() From: Jim Mattson To: Borislav Petkov , Thomas Gleixner , x86@kernel.org, linux-kernel@vger.kernel.org, yosry@kernel.org Cc: Jim Mattson Content-Type: text/plain; charset="UTF-8" Since msr_set_bit() and msr_clear_bit() perform a non-atomic update to an MSR, they can race with a write to the same MSR from interrupt context. On AMD CPUs, set_cpuid_faulting() uses these functions to modify MSR_K7_HWCR from process context, and boost_set_msr() modifies MSR_K7_HWCR from interrupt context. To prevent the race, disable interrupts on the AMD path through set_cpuid_faulting(). Note that when set_cpuid_faulting() is called from __switch_to_xtra(), interrupts are already disabled. Reported-by: Sashiko (gemini/gemini-3.1-pro-preview) Fixes: 65f55a301766 ("x86/CPU/AMD: Add CPUID faulting support") Signed-off-by: Jim Mattson --- arch/x86/kernel/process.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/arch/x86/kernel/process.c b/arch/x86/kernel/process.c index 4c718f8adc59..92492a63108f 100644 --- a/arch/x86/kernel/process.c +++ b/arch/x86/kernel/process.c @@ -354,10 +354,14 @@ static void set_cpuid_faulting(bool on) this_cpu_write(msr_misc_features_shadow, msrval); wrmsrq(MSR_MISC_FEATURES_ENABLES, msrval); } else if (boot_cpu_data.x86_vendor == X86_VENDOR_AMD) { + unsigned long flags; + + local_irq_save(flags); if (on) msr_set_bit(MSR_K7_HWCR, MSR_K7_HWCR_CPUID_USER_DIS_BIT); else msr_clear_bit(MSR_K7_HWCR, MSR_K7_HWCR_CPUID_USER_DIS_BIT); + local_irq_restore(flags); } } -- 2.54.0.1099.g489fc7bff1-goog