Messages in this thread | | | Date | Tue, 22 Nov 2022 21:46:14 +0800 | Subject | Re: [RFC PATCH V2 16/18] x86/sev: Initialize #HV doorbell and handle interrupt requests | From | Tianyu Lan <> |
| |
On 11/21/2022 11:05 PM, Kalra, Ashish wrote: >> +static void do_exc_hv(struct pt_regs *regs) >> +{ >> + union hv_pending_events pending_events; >> + u8 vector; >> + >> + while (sev_hv_pending()) { >> + asm volatile("cli" : : : "memory"); >> + > > Do we really need to disable interrupts here, #HV exception will be > dispatched via an interrupt gate in the IDT, so interrupts should be > implicitly disabled, right ? >> panic("Unexpected vector %d\n", vector); >> + unreachable(); >> + } >> + } else { >> + common_interrupt(regs, pending_events.vector); >> + } >> + >> + asm volatile("sti" : : : "memory"); > > Again, why do we need to re-enable interrupts here (in this loop), > interrupts will get re-enabled in the irqentry_exit() code path ?
Hi Ashish: Thanks for your review. check_hv_pending() is also called in the native_irq_enable() to handle some pending interrupt requests after re -enabling interrupt. For such case, disables irq when handle exception or interrupt event.
| |