|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH v2 2/4] xen/arm: its: separate ITS and host LPI quirk scopes
On 28-May-26 02:25, Mykola Kvach wrote: > From: Mykola Kvach <mykola_kvach@xxxxxxxx> > > ITS quirks can impose restrictions on memory accessed by the ITS itself and > on shared host LPI/Redistributor state. These scopes are not identical, so > a single global ITS quirk state makes the host LPI policy depend implicitly > on the quirks seen while initializing host ITSes. > > Add per-ITS quirk_flags to struct host_its and keep a separate > host_lpi_flags state in the LPI code. The quirk table now records the > ITS-private and host LPI scopes explicitly through its_flags and lpi_flags. > The R-Car Gen4 quirk applies the same memory-related restrictions to both > scopes, preserving the existing behavior without relying on an implicit > aggregation step. > > This also removes the old assumption that all host ITSes must expose the > same quirk state. Host LPI restrictions are accumulated only from quirk > entries that explicitly set lpi_flags. > > Use per-ITS quirk_flags for GITS_CBASER, GITS_BASER<n> and ITT allocations. > Use host_lpi_flags directly in gic-v3-lpi.c for GICR_PROPBASER and > GICR_PENDBASER setup. Memory-related quirk bits are named GICV3_QUIRK_MEM_* > and are translated by shared gicv3_mem_get_*() helpers. > > Signed-off-by: Mykola Kvach <mykola_kvach@xxxxxxxx> I already gave R-b for this patch but noticed two issues: [...] > > -static void gicv3_its_enable_quirks(struct host_its *hw_its) > +static void __init gicv3_its_collect_quirks(struct host_its *hw_its) The only caller of gicv3_its_collect_quirks() is gicv3_its_init_single_its(), which stays non-init until patch 4/4. Please annotate the caller here as well. [...] > @@ -157,6 +164,7 @@ int gicv3_lpi_init_rdist(void __iomem * rdist_base); > /* Initialize the host structures for LPIs and the host ITSes. */ > int gicv3_lpi_init_host_lpis(unsigned int host_lpi_bits); > int gicv3_its_init(void); > +void __init gicv3_lpi_update_host_flags(uint32_t flags); Please, do not add __init here for a prototype. ~Michal
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |