Re: [PATCH 02/32] powercap: Stop using 32-bit MSR interfaces

From: Rafael J. Wysocki (Intel)

Date: Mon Jul 06 2026 - 09:03:36 EST


On Mon, Jun 29, 2026 at 8:05 AM Juergen Gross <jgross@xxxxxxxx> wrote:
>
> 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.
>
> Signed-off-by: Juergen Gross <jgross@xxxxxxxx>

LGTM

Acked-by: Rafael J. Wysocki (Intel) <rafael@xxxxxxxxxx>

> ---
> 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 1006d183d508..3cee4ccb7997 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)
> --
> 2.54.0
>
>