|
|
|
|
|
|
|
|
|
|
xen-devel
Re: [Xen-devel] [GIT PULL] pv/pcifront-2.6.32
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?):
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
|
|
|
|
|