[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH] xen: do not unmask disabled IRQ on eoi.



On Fri, 2010-10-22 at 09:29 +0100, Jan Beulich wrote:
> >>> On 22.10.10 at 10:07, Ian Campbell <Ian.Campbell@xxxxxxxxxxxxx> wrote:
> > On Fri, 2010-10-22 at 08:41 +0100, Jan Beulich wrote: 
> >> >>> On 21.10.10 at 15:36, Stefano Stabellini 
> >> >>> <stefano.stabellini@xxxxxxxxxxxxx> wrote:
> >> > --- a/drivers/xen/events.c
> >> > +++ b/drivers/xen/events.c
> >> > @@ -436,21 +436,50 @@ static bool identity_mapped_irq(unsigned irq)
> >> >          return irq < get_nr_hw_irqs();
> >> >  }
> >> >  
> >> > -static void pirq_eoi(unsigned int irq)
> >> > +static void eoi_pirq(unsigned int irq)
> >> >  {
> >> >          struct irq_info *info = info_for_irq(irq);
> >> >          struct physdev_eoi eoi = { .irq = info->u.pirq.gsi };
> >> > -        bool need_eoi;
> >> > +        int evtchn = evtchn_from_irq(irq);
> >> > +        int rc = 0, need_mask = 0;
> >> > +        struct shared_info *s = HYPERVISOR_shared_info;
> >> >  
> >> > -        need_eoi = pirq_needs_eoi(irq);
> >> > +        if (!VALID_EVTCHN(evtchn))
> >> > +                return;
> >> >  
> >> > -        if (!need_eoi || !pirq_eoi_does_unmask)
> >> > -                unmask_evtchn(info->evtchn);
> >> > +        move_masked_irq(irq);
> >> 
> >> It's not clear whether calling this function is valid when the IRQ isn't
> >> really masked.
> >> 
> >> In any case I'd suggest adding an IRQ_DISABLED check matching
> >> move_native_irq()'s.
> > 
> > Why not just call move_native_irq instead of move_masked_irq as
> > appropriate?
> 
> That was what I implied with the first part of my response.

Too subtle for me ;-)

> But I think the second part applies if a (the conditional) call to
> move_masked_irq() would stay.

Agreed, although I suspect we should know if the evtchn is masked or not
at this point depending on the already known properties of the
particular pirq (need_eoi, pirq_eoi_does_unmask etc).

Ian.



_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.