lkml.org 
[lkml]   [2022]   [Nov]   [22]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    SubjectRe: [RFC PATCH V2 16/18] x86/sev: Initialize #HV doorbell and handle interrupt requests
    From
    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.


    \
     
     \ /
      Last update: 2022-11-22 14:46    [W:2.398 / U:0.216 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site