On Mon, Dec 05, 2016 at 10:46:36PM +0100, Eric Auger wrote: > Add a new cpu_count field in gicv3_data indicating the > number of redistributors. This will be useful for enumeration > of their resources such as LPI pending tables. I'm fine with the additional state, but just curious, will it ever be possible for gicv3.cpu_count != nr_cpus? > > Signed-off-by: Eric Auger <eric.auger@xxxxxxxxxx> > --- > lib/arm/asm/gic-v3.h | 1 + > lib/arm/gic-v3.c | 2 ++ > 2 files changed, 3 insertions(+) > > diff --git a/lib/arm/asm/gic-v3.h b/lib/arm/asm/gic-v3.h > index ed330af..039b7c2 100644 > --- a/lib/arm/asm/gic-v3.h > +++ b/lib/arm/asm/gic-v3.h > @@ -58,6 +58,7 @@ struct gicv3_data { > void *dist_base; > void *redist_base[NR_CPUS]; > unsigned int irq_nr; > + unsigned int cpu_count; > }; > extern struct gicv3_data gicv3_data; > > diff --git a/lib/arm/gic-v3.c b/lib/arm/gic-v3.c > index 6246221..9921f4d 100644 > --- a/lib/arm/gic-v3.c > +++ b/lib/arm/gic-v3.c > @@ -12,12 +12,14 @@ void gicv3_set_redist_base(size_t stride) > void *ptr = gicv3_data.redist_base[0]; > u64 typer; > > + gicv3_data.cpu_count = 0; > do { > typer = gicv3_read_typer(ptr + GICR_TYPER); > if ((typer >> 32) == aff) { > gicv3_redist_base() = ptr; > return; > } > + gicv3_data.cpu_count++; > ptr += stride; /* skip RD_base, SGI_base, etc. */ > } while (!(typer & GICR_TYPER_LAST)); > > -- > 2.5.5 > > -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html