[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH] x86/MSI: fix guest unmasking when handling IRQ via event channel
>>> On 08.07.15 at 11:39, <david.vrabel@xxxxxxxxxx> wrote: > On 08/07/15 09:56, Jan Beulich wrote: >> Rather than assuming only PV guests need special treatment (and >> dealing with that directly when an IRQ gets set up), keep all guest MSI >> IRQs masked until either the (HVM) guest unmasks them via vMSI or the >> (PV, PVHVM, or PVH) guest sets up an event channel for it. >> >> To not further clutter the common evtchn_bind_pirq() with x86-specific >> code, introduce an arch_evtchn_bind_pirq() hook instead. > > Can you describe the symptoms of the bug being fixed here? Interrupts simply didn't get unmasked for PVHVM Linux guests. >> --- a/xen/include/asm-arm/irq.h >> +++ b/xen/include/asm-arm/irq.h >> @@ -47,6 +47,8 @@ int release_guest_irq(struct domain *d, >> >> void arch_move_irqs(struct vcpu *v); >> >> +#define arch_evtchn_bind_pirq(d, pirq) ((void)((d) + (pirq))) > > Would this be better as a inline function? > >> + >> /* Set IRQ type for an SPI */ >> int irq_set_spi_type(unsigned int spi, unsigned int type); >> >> --- a/xen/include/xen/irq.h >> +++ b/xen/include/xen/irq.h >> @@ -172,4 +172,8 @@ unsigned int set_desc_affinity(struct ir >> unsigned int arch_hwdom_irqs(domid_t); >> #endif >> >> +#ifndef arch_evtchn_bind_pirq >> +void arch_evtchn_bind_pirq(struct domain *, int pirq); > > ... moving this into xen/include/asm-x86/irq.h Oh, right, (also to Julien) - this is exactly the reason I do not want it to be an inline function for ARM: I want the declaration here, not replicated in every interested arch's header. Jan _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |