From a9d2ae6c0269586ae58204b6474a8d5818feb1ce Mon Sep 17 00:00:00 2001 From: Michael Young Date: Dec 14 2010 21:51:11 +0000 Subject: test an irq patch in xen.pcifront.fixes.patch --- diff --git a/kernel.spec b/kernel.spec index 038f4b4..0ef9ea2 100644 --- a/kernel.spec +++ b/kernel.spec @@ -721,7 +721,7 @@ Patch12421: orinoco-initialise-priv_hw-before-assigning-the-interrupt.patch Patch20000: xen.next-2.6.37.patch #Patch20001: xen.upstream.core.patch # git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen.git branches -#Patch20005: xen.pcifront.fixes.patch +Patch20005: xen.pcifront.fixes.patch # git://xenbits.xen.org/people/sstabellini/linux-pvhvm branches #Patch20010: xen.pvhvm.fixes.patch @@ -1333,7 +1333,7 @@ ApplyPatch orinoco-initialise-priv_hw-before-assigning-the-interrupt.patch # Xen patches ApplyPatch xen.next-2.6.37.patch #ApplyPatch xen.upstream.core.patch -#ApplyPatch xen.pcifront.fixes.patch +ApplyPatch xen.pcifront.fixes.patch #ApplyPatch xen.pvhvm.fixes.patch # END OF PATCH APPLICATIONS @@ -1949,6 +1949,9 @@ fi # || || %changelog +* Tue Dec 14 2010 Michael Young +- test an irq patch in xen.pcifront.fixes.patch + * Fri Dec 10 2010 Kyle McMartin - Another patch from mjg59: Set _OSC supported field correctly (#638912) diff --git a/xen.pcifront.fixes.patch b/xen.pcifront.fixes.patch new file mode 100644 index 0000000..8698700 --- /dev/null +++ b/xen.pcifront.fixes.patch @@ -0,0 +1,42 @@ +commit be72548ffe8618c3141c050400306b93f40a107a +Author: Konrad Rzeszutek Wilk +Date: Tue Dec 14 11:43:40 2010 -0500 + + Revert "xen: Find an unbound irq number in reverse order (high to low)." + + This reverts commit 482839e7b96098f678d0404ec4dd321419ab3ea7. + + Conflicts: + + drivers/xen/events.c + +diff --git a/drivers/xen/events.c b/drivers/xen/events.c +index 0380664..8889e7f 100644 +--- a/drivers/xen/events.c ++++ b/drivers/xen/events.c +@@ -401,11 +401,9 @@ static int find_unbound_irq(void) + int irq, res; + 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--) { ++ for (irq = start; irq < nr_irqs; irq++) { + data = irq_get_irq_data(irq); + /* only 0->15 have init'd desc; handle irq > 16 */ + if (!data) +@@ -414,11 +412,8 @@ static int find_unbound_irq(void) + break; + if (data->chip != &xen_dynamic_chip) + continue; +- if (irq_info[irq].type == IRQT_UNBOUND) +- return irq; + } +- +- if (irq == start) ++ if (irq == nr_irqs) + goto no_irqs; + + res = irq_alloc_desc_at(irq, -1);