On 08/03/2022 08:15, Jan Beulich wrote:
> On 07.03.2022 21:53, Andrew Cooper wrote:
>> --- a/xen/arch/x86/machine_kexec.c
>> +++ b/xen/arch/x86/machine_kexec.c
>> @@ -156,6 +156,16 @@ void machine_kexec(struct kexec_image *image)
>>       */
>>      local_irq_disable();
>>  
>> +    /* Reset CPUID masking and faulting to the host's default. */
>> +    ctxt_switch_levelling(NULL);
>> +
>> +    /* Disable CET. */
>> +    if ( read_cr4() & X86_CR4_CET )
>> +    {
>> +        wrmsrl(MSR_S_CET, 0);
>> +        write_cr4(read_cr4() & ~X86_CR4_CET);
>> +    }
>> +
>>      /* Now regular interrupts are disabled, we need to reduce the impact
>>       * of interrupts not disabled by 'cli'.
>>       *
> Besides introducing somewhat of a disconnect between the comment in
> context here and the earlier local_irq_disable(), is it really
> necessary to do both actions with IRQs off?

We are a handful of instructions away from discarding Xen's context
entirely.  IRQs are not a relevant concern.

If we're nitpicking, irqs want to be off before kexecing gets set,
because absolutely nothing good can come of handling interrupts later
than that point.

~Andrew

Reply via email to