On Mon, 22 Jan 2024 16:18:04 +0000, Lorenzo Pieralisi <lpieralisi@xxxxxxxxxx> wrote: > > On Wed, Dec 27, 2023 at 12:00:38PM +0100, Lorenzo Pieralisi wrote: > > [...] > > > @@ -2380,6 +2385,10 @@ gic_acpi_parse_madt_gicc(union acpi_subtable_headers *header, > > return -ENOMEM; > > gic_request_region(gicc->gicr_base_address, size, "GICR"); > > > > + if (gic_acpi_non_coherent_flag(gicc->flags, > > + ACPI_MADT_GICC_NON_COHERENT)) > > + gic_data.rdists.flags |= RDIST_FLAGS_FORCE_NON_SHAREABLE; > > + > > Quick question before reposting it. We run this function for > every GICC entry, I didn't add a check to make sure all GICC > entries have the same flag value, please let me know if that's > OK. > > I don't think there is a point in keeping a live variable across > calls to set the flag once for all either. I don't think that's useful. Once we see the flag being set, we'll enforce the non-coherency. If it wasn't set before, it's because it wasn't necessary. If one day we find a firmware that only randomly exposes the flag, we'll treat it as a quirk. Thanks, M. -- Without deviation from the norm, progress is not possible.