On 18/08/2025 12:23 pm, Jan Beulich wrote:
> On 15.08.2025 22:41, Andrew Cooper wrote:
>> ... in preparation to be able to use asm goto.
>>
>> Notably this mean that the value parameter must be taken by pointer rather
>> than by value.
>>
>> No functional change.
>>
>> Signed-off-by: Andrew Cooper <andrew.coop...@citrix.com>
> In principle
> Reviewed-by: Jan Beulich <jbeul...@suse.com>

Thanks.

> However, having looked at patch 2 first, ...
>
>> @@ -879,14 +879,14 @@ static void intel_init_ppin(const struct cpuinfo_x86 
>> *c)
>>      case 0x8f: /* Sapphire Rapids X */
>>  
>>          if ( (c != &boot_cpu_data && !ppin_msr) ||
>> -             rdmsr_safe(MSR_PPIN_CTL, val) )
>> +             rdmsr_safe(MSR_PPIN_CTL, &val) )
>>              return;
> ... with this, wouldn't we be better off using ...
>
>>          /* If PPIN is disabled, but not locked, try to enable. */
>>          if ( !(val & (PPIN_ENABLE | PPIN_LOCKOUT)) )
>>          {
>>              wrmsr_safe(MSR_PPIN_CTL, val | PPIN_ENABLE);
>> -            rdmsr_safe(MSR_PPIN_CTL, val);
>> +            rdmsr_safe(MSR_PPIN_CTL, &val);
> ... plain rdmsr() here, thus not leaving it open to the behavioral change
> patch 2 comes with?

Yeah, probably.  At the point we've read it once, and written to it, a
subsequent read is not going fail.

I'll adjust, although it will have to be a rdmsrl().

~Andrew

Reply via email to