GSI should not be allocated for other purpose, so change the hard code limit. Also fix the out of loop checking, it should be ''<'' instead of ''==''. Signed-off-by: Qing He <qing.he@intel.com> --- diff -r e8004f6c254a xen/arch/x86/irq.c --- a/xen/arch/x86/irq.c Thu Aug 27 11:25:34 2009 +0100 +++ b/xen/arch/x86/irq.c Fri Aug 28 14:06:43 2009 +0800 @@ -1254,10 +1254,10 @@ int get_free_pirq(struct domain *d, int } else { - for ( i = d->nr_pirqs - 1; i >= 16; i-- ) + for ( i = d->nr_pirqs - 1; i >= nr_irqs_gsi; i-- ) if ( !d->arch.pirq_irq[i] ) break; - if ( i == 16 ) + if ( i < nr_irqs_gsi ) return -ENOSPC; } _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel