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