Re: [PATCH v2 15/26] xen, irq: call irq_realloc_desc_at() at first

Konrad Rzeszutek Wilk
2013-03-08T20:02:22Z

On Fri, Mar 08, 2013 at 02:43:57PM -0500, Konrad Rzeszutek Wilk wrote:
> On Fri, Feb 08, 2013 at 11:28:12AM -0800, Yinghai Lu wrote:
> > We will pre-reserve irq for all gsi at first for x86, so we have to
> > use realloc with it.
>
> Where are the GSI's pre-allocated?

And the answer is in arch_probe_nr_irqs and determined by nr_irqs_gsi.
That data then feeds in early_irq_init which sets the bitmap.

Could you add that please in the git commit if it is not too much
trouble?
>
> >
> > Signed-off-by: Yinghai Lu <yinghai@kernel.org>
> > Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
> > Cc: xen-devel@lists.xensource.com
> > ---
> > drivers/xen/events.c | 8 ++++++--
> > 1 file changed, 6 insertions(+), 2 deletions(-)
> >
> > diff --git a/drivers/xen/events.c b/drivers/xen/events.c
> > index 0be4df3..dda38db 100644
> > --- a/drivers/xen/events.c
> > +++ b/drivers/xen/events.c
> > @@ -482,8 +482,12 @@ static int __must_check xen_allocate_irq_gsi(unsigned gsi)
> > /* Legacy IRQ descriptors are already allocated by the arch. */
> > if (gsi < NR_IRQS_LEGACY)
> > irq = gsi;
> > - else
> > - irq = irq_alloc_desc_at(gsi, -1);
> > + else {
> > + /* for x86, irq already get reserved for gsi */
> > + irq = irq_realloc_desc_at(gsi, -1);
> > + if (irq < 0)
> > + irq = irq_alloc_desc_at(gsi, -1);
> > + }
> >
> > xen_irq_init(irq);
> >
> > --
> > 1.7.10.4
> >