Re: [PATCH v2] ACPI: scan: Do not combine resources that overlap completely
Julien <[email protected]>
| Newsgroups | org.kernel.vger.linux-acpi,org.kernel.vger.linux-integrity,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <CAJOGg3z22-G_+izney69i3AhesqwX-u0Coj74zXSjb-RzSCdvw@mail.gmail.com> |
On Tue, Sep 1, 2026 at 3:12 PM Jarkko Sakkinen <[email protected]> wrote: > > On Sat, Aug 29, 2026 at 12:43:30AM +0200, Julien wrote: > > On Thu, Aug 20, 2026 at 9:11 PM Rafael J. Wysocki <[email protected]> wrote: > > > > > > From: "Rafael J. Wysocki" <[email protected]> > > > > > > Commit f234fdaae1ca ("ACPI: scan: Avoid registering platform devices > > > with resource overlaps") attempted to avoid platform device registration > > > errors due to overlaps of resources of the same type returned by the > > > same _CRS object in the ACPI tables. It did that by combining two or > > > more overlapping resources into one, but it went too far and also > > > caused resources that overlap completely to be combined which broke > > > the arm-cmn driver that expects two MMIO resources to be present for > > > each device it binds to and it expects those two resources to overlap > > > completely. > > > > > > Address this issue by adding checks for completely overlapping > > > resources to acpi_platform_adjust_resources() and add a comment > > > explaining what is done there. > > > > > > Fixes: f234fdaae1ca ("ACPI: scan: Avoid registering platform devices with resource overlaps") > > > Reported-by: Nathan Chancellor <[email protected]> > > > Tested-by: Nathan Chancellor <[email protected]> > > > Closes: https://lore.kernel.org/linux-acpi/20260819003752.GA3063251@ax162/ > > > Signed-off-by: Rafael J. Wysocki <[email protected]> > > > --- > > > > > > v1 -> v2: > > > * It is better to check for complete overlaps both ways as suggested > > > by Sashiko. > > > > > > @Julien: I would appreciate testing this on the machine that needed > > > commit f234fdaae1ca. > > > > > > --- > > > drivers/acpi/acpi_platform.c | 8 +++++++- > > > 1 file changed, 7 insertions(+), 1 deletion(-) > > > > > > --- a/drivers/acpi/acpi_platform.c > > > +++ b/drivers/acpi/acpi_platform.c > > > @@ -85,7 +85,13 @@ static unsigned int acpi_platform_adjust > > > for (i = 0; i < count; ) { > > > struct resource *res = &resources[i]; > > > > > > - if (resource_type(new_res) != resource_type(res) || > > > + /* > > > + * Look for overlaps of resources of the same type that would > > > + * cause resource insertion to fail down the road. > > > + */ > > > + if (__resource_contains_unbound(res, new_res) || > > > + __resource_contains_unbound(new_res, res) || > > > + resource_type(new_res) != resource_type(res) || > > > !resource_union(new_res, res, new_res)) { > > > i++; > > > continue; > > > > > > > > > > > > > I have tested this on commit 1b78070aaef6. It seems the patch is > > already included in it. > > > > TPM device still works. Here are the logs. > > acpi MSFT0101:00: [mem 0xfed40000-0xfed4103f] expanded due to overlap > > tpm_crb_acpi MSFT0101:00: [Firmware Bug]: Bad ACPI memory layout > > > > If in the future if I need to make tests again, should I do them on > > the Linus Torvalds' branch? > > What was the hardware where this happens? > > Sorry, if I've ignored it (if it was mentioned previously). > > BR, Jarkko It is the Acer Aspire ES1-572. I reported it here https://lore.kernel.org/linux-integrity/CAJOGg3z6LJPDsdPNBxajgy8_wQxfhYBRxe4EiurZf3kPU5A5Bw@mail.gmail.com/.