[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 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. But
I think the second part applies if a (the conditional) call to
move_masked_irq() would stay.

Jan


_______________________________________________
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®.