[tip: x86/msr] powercap: Stop using 32-bit MSR interfaces

From: tip-bot2 for Juergen Gross

Date: Fri Jul 17 2026 - 05:35:06 EST


The following commit has been merged into the x86/msr branch of tip:

Commit-ID: f0a1575221d1bb45d8548a3fbc49a1a3bfaea24d
Gitweb: https://git.kernel.org/tip/f0a1575221d1bb45d8548a3fbc49a1a3bfaea24d
Author: Juergen Gross <jgross@xxxxxxxx>
AuthorDate: Mon, 29 Jun 2026 08:04:53 +02:00
Committer: Ingo Molnar <mingo@xxxxxxxxxx>
CommitterDate: Fri, 17 Jul 2026 10:26:50 +02:00

powercap: Stop using 32-bit MSR interfaces

The 32-bit MSR interfaces rdmsr_safe() and wrmsr_safe() are planned to
be removed. Use the related 64-bit variants instead.

Drop a pointless initializer while at it.

Signed-off-by: Juergen Gross <jgross@xxxxxxxx>
Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
Acked-by: Rafael J. Wysocki (Intel) <rafael@xxxxxxxxxx>
Link: https://patch.msgid.link/20260629060526.3638272-3-jgross@xxxxxxxx
---
drivers/powercap/intel_rapl_common.c | 20 ++++++++++----------
1 file changed, 10 insertions(+), 10 deletions(-)

diff --git a/drivers/powercap/intel_rapl_common.c b/drivers/powercap/intel_rapl_common.c
index 1006d18..3cee4cc 100644
--- a/drivers/powercap/intel_rapl_common.c
+++ b/drivers/powercap/intel_rapl_common.c
@@ -752,17 +752,17 @@ EXPORT_SYMBOL_NS_GPL(rapl_default_check_unit, "INTEL_RAPL");

static void power_limit_irq_save_cpu(void *info)
{
- u32 l, h = 0;
+ struct msr val;
struct rapl_package *rp = (struct rapl_package *)info;

/* save the state of PLN irq mask bit before disabling it */
- rdmsr_safe(MSR_IA32_PACKAGE_THERM_INTERRUPT, &l, &h);
+ rdmsrq_safe(MSR_IA32_PACKAGE_THERM_INTERRUPT, &val.q);
if (!(rp->power_limit_irq & PACKAGE_PLN_INT_SAVED)) {
- rp->power_limit_irq = l & PACKAGE_THERM_INT_PLN_ENABLE;
+ rp->power_limit_irq = val.l & PACKAGE_THERM_INT_PLN_ENABLE;
rp->power_limit_irq |= PACKAGE_PLN_INT_SAVED;
}
- l &= ~PACKAGE_THERM_INT_PLN_ENABLE;
- wrmsr_safe(MSR_IA32_PACKAGE_THERM_INTERRUPT, l, h);
+ val.l &= ~PACKAGE_THERM_INT_PLN_ENABLE;
+ wrmsrq_safe(MSR_IA32_PACKAGE_THERM_INTERRUPT, val.q);
}

/* REVISIT:
@@ -792,7 +792,7 @@ static void package_power_limit_irq_save(struct rapl_package *rp)
*/
static void package_power_limit_irq_restore(struct rapl_package *rp)
{
- u32 l, h;
+ struct msr val;

if (rp->lead_cpu < 0)
return;
@@ -804,14 +804,14 @@ static void package_power_limit_irq_restore(struct rapl_package *rp)
if (!(rp->power_limit_irq & PACKAGE_PLN_INT_SAVED))
return;

- rdmsr_safe(MSR_IA32_PACKAGE_THERM_INTERRUPT, &l, &h);
+ rdmsrq_safe(MSR_IA32_PACKAGE_THERM_INTERRUPT, &val.q);

if (rp->power_limit_irq & PACKAGE_THERM_INT_PLN_ENABLE)
- l |= PACKAGE_THERM_INT_PLN_ENABLE;
+ val.l |= PACKAGE_THERM_INT_PLN_ENABLE;
else
- l &= ~PACKAGE_THERM_INT_PLN_ENABLE;
+ val.l &= ~PACKAGE_THERM_INT_PLN_ENABLE;

- wrmsr_safe(MSR_IA32_PACKAGE_THERM_INTERRUPT, l, h);
+ wrmsrq_safe(MSR_IA32_PACKAGE_THERM_INTERRUPT, val.q);
}

void rapl_default_set_floor_freq(struct rapl_domain *rd, bool mode)