[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 21.10.10 at 15:36, Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx> 
>>> wrote:
> New version of this patch:

Looks consistent now, with one possible exception (I'm not sure here
really). I'm not going to ack this nevertheless as I continue to not be
convinced of the switch to handle_edge_irq(), the more that your
patch (as you write yourself) complicates the code.

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

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