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

Re: [Xen-devel] [GIT PULL] pv/pcifront-2.6.32



On Tue, 2010-03-02 at 13:55 +0000, Konrad Rzeszutek Wilk wrote:
> On Tue, Mar 02, 2010 at 09:21:55AM +0000, Ian Campbell wrote:
> > On Tue, 2010-03-02 at 03:12 +0000, Konrad Rzeszutek Wilk wrote:
> > > 
> > > Ian Campbell (1):
> > >       xen: fix off-by-one error in find_unbound_irq 
> > 
> > You need to add this commit if you include the above:
> 
> I merged both patches and joined the  description.
> This is what I have (I hope this is OK?):

Fine with me, thanks.

Ian.

> 
> 
> commit bfbc226dc3473b49d6a8721ca8f6457e6fa1c690
> Author: Ian Campbell <Ian.Campbell@xxxxxxxxxx>
> Date:   Mon Mar 1 13:07:18 2010 +0000
> 
>     xen: fix off-by-one error in find_unbound_irq
>     
>     68458a36 "fix off-by-one error in find_unbound_irq" introduced an issue 
> with
>     the error handling in this function. It incorrectly assumed that exiting 
> the
>     searhc loop with irq == nr_irqs - 1 was an error case when in fact it is
>     prefectly possible for irq == nr_irqs - 1 to be an available IRQ.
>     
>     The actual error condition which 68458a36 tried to fix is when start ==
>     nr_irqs, IOW when there is literaly no interrupts which aren't already h/w
>     interrupts.
>     
>     Signed-off-by: Ian Campbell <ian.campbell@xxxxxxxxxx>
>      drivers/xen/events.c |   10 ++++++++--
>      1 files changed, 8 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/xen/events.c b/drivers/xen/events.c
> index c75614b..be9ad7f 100644
> --- a/drivers/xen/events.c
> +++ b/drivers/xen/events.c
> @@ -363,13 +363,16 @@ static int find_unbound_irq(void)
>       struct irq_desc *desc;
>       int start = get_nr_hw_irqs();
>  
> +     if (start == nr_irqs)
> +             goto no_irqs;
> +
>       /* nr_irqs is a magic value. Must not use it.*/
>       for (irq = nr_irqs-1; irq > start; irq--)
>               if (irq_info[irq].type == IRQT_UNBOUND)
>                       break;
>  
> -     if (irq == start || irq == nr_irqs)
> -             panic("No available IRQ to bind to: increase nr_irqs!\n");
> +     if (irq == start)
> +             goto no_irqs;
>  
>       desc = irq_to_desc_alloc_node(irq, 0);
>       if (WARN_ON(desc == NULL))
> @@ -378,6 +381,9 @@ static int find_unbound_irq(void)
>       dynamic_irq_init(irq);
>  
>       return irq;
> +
> +no_irqs:
> +     panic("No available IRQ to bind to: increase nr_irqs!\n");
>  }
>  
>  static bool identity_mapped_irq(unsigned irq)
> > 
> > commit 716645983e03118d11924cc245cd63fd67c6bfa8
> > Author: Ian Campbell <ian.campbell@xxxxxxxxxx>
> > Date:   Mon Mar 1 12:06:15 2010 +0000
> > 
> >     xen: fix error handling in in find_unbound_irq
> >     
> >     68458a36 "fix off-by-one error in find_unbound_irq" introduced an issue 
> > with
> >     the error handling in this function. It incorrectly assumed that 
> > exiting the
> >     searhc loop with irq == nr_irqs - 1 was an error case when in fact it is
> >     prefectly possible for irq == nr_irqs - 1 to be an available IRQ.
> >     
> >     The actual error condition which 68458a36 tried to fix is when start ==
> >     nr_irqs, IOW when there is literaly no interrupts which aren't already 
> > h/w
> >     interrupts.
> > 
> > 
> > 
> > _______________________________________________
> > Xen-devel mailing list
> > Xen-devel@xxxxxxxxxxxxxxxxxxx
> > http://lists.xensource.com/xen-devel



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