WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

Re: [Xen-devel] Re: [PATCH] xen: fix off-by-one error in find_unbound_ir

To: Jeremy Fitzhardinge <jeremy@xxxxxxxx>
Subject: Re: [Xen-devel] Re: [PATCH] xen: fix off-by-one error in find_unbound_irq
From: Ian Campbell <Ian.Campbell@xxxxxxxxxx>
Date: Fri, 26 Feb 2010 21:21:27 +0000
Cc: "xen-devel@xxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxx>, Jeremy, Fitzhardinge <Jeremy.Fitzhardinge@xxxxxxxxxx>, Konrad Rzeszutek Wilk <konrad.wilk@xxxxxxxxxx>
Delivery-date: Fri, 26 Feb 2010 13:22:54 -0800
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
In-reply-to: <4B882B72.3000207@xxxxxxxx>
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
Organization: Citrix Systems, Inc.
References: <1267181975-14348-1-git-send-email-ian.campbell@xxxxxxxxxx> <1267183329.11737.12225.camel@xxxxxxxxxxxxxxxxxxxxxx> <4B882B72.3000207@xxxxxxxx>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
On Fri, 2010-02-26 at 20:13 +0000, Jeremy Fitzhardinge wrote: 
> On 02/26/2010 03:22 AM, Ian Campbell wrote:
> > BTW, this is against xen/master, the original patch isn't in xen/next.
> >    
> 
> Looks like it came from the pcifront branch which isn't in xen/next yet.

Makes sense.

I don't think my fix is right though, exiting that loop with irq ==
nr_irqs - 1 can be valid if the test in first iteration succeeds and we
break out

The error case is when start == nr_irqs which means we do no iterations
of the loop at all but still exit with irq == nr_irqs - 1.

Ian.

> 
>      J
> 
> > On Fri, 2010-02-26 at 10:59 +0000, Ian Campbell wrote:
> >    
> >> e459de95 "Find an unbound irq number in reverse order (high to low)" 
> >> introduced
> >> an off by one error which would cause repeated allocations of the 
> >> nr_irq'th IRQ
> >> if there are no spare interrupts (i.e. get_nr_hw_irqs() == nr_irqs).
> >>
> >> Signed-off-by: Ian Campbell<ian.campbell@xxxxxxxxxx>
> >> Cc: Konrad Rzeszutek Wilk<konrad.wilk@xxxxxxxxxx>
> >> Cc: Jeremy Fitzhardinge<jeremy.fitzhardinge@xxxxxxxxxx>
> >> ---
> >>   drivers/xen/events.c |    2 +-
> >>   1 files changed, 1 insertions(+), 1 deletions(-)
> >>
> >> diff --git a/drivers/xen/events.c b/drivers/xen/events.c
> >> index 99f2b2a..5c64e1d 100644
> >> --- a/drivers/xen/events.c
> >> +++ b/drivers/xen/events.c
> >> @@ -377,7 +377,7 @@ static int find_unbound_irq(void)
> >>            if (irq_info[irq].type == IRQT_UNBOUND)
> >>                    break;
> >>
> >> -  if (irq == start || irq == nr_irqs)
> >> +  if (irq == start || irq == nr_irqs - 1)
> >>            panic("No available IRQ to bind to: increase nr_irqs!\n");
> >>
> >>    desc = irq_to_desc_alloc_node(irq, 0);
> >>      
> >
> >
> > _______________________________________________
> > 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

<Prev in Thread] Current Thread [Next in Thread>