Re: [PATCH v2 07/10] x86/msr: Switch rdmsr_safe_on_cpu() users to rdmsrq_safe_on_cpu()

From: Ingo Molnar

Date: Sat Jun 06 2026 - 05:53:42 EST



* Juergen Gross <jgross@xxxxxxxx> wrote:

> In order to prepare retiring rdmsr_safe_on_cpu() switch
> rdmsr_safe_on_cpu() users to rdmsrq_safe_on_cpu().

> --- a/arch/x86/lib/msr-smp.c
> +++ b/arch/x86/lib/msr-smp.c
> @@ -190,11 +190,22 @@ EXPORT_SYMBOL(wrmsrq_safe_on_cpu);
>
> int rdmsrq_safe_on_cpu(unsigned int cpu, u32 msr_no, u64 *q)
> {
> - u32 low, high;
> + struct msr_info_completion rv;
> + call_single_data_t csd;
> int err;
>
> - err = rdmsr_safe_on_cpu(cpu, msr_no, &low, &high);
> - *q = (u64)high << 32 | low;
> + INIT_CSD(&csd, __rdmsr_safe_on_cpu, &rv);
> +
> + memset(&rv, 0, sizeof(rv));
> + init_completion(&rv.done);
> + rv.msr.msr_no = msr_no;
> +
> + err = smp_call_function_single_async(cpu, &csd);
> + if (!err) {
> + wait_for_completion(&rv.done);
> + err = rv.msr.err;
> + }
> + *q = rv.msr.reg.q;

While technically this is another API user conversion,
I'd split this out into another preparatory patch,
because this changes the API itself.

Thanks,

Ingo