Re: [PATCH v2] ACPI: scan: Do not combine resources that overlap completely
From: Julien
Date: Sun Sep 06 2026 - 14:32:36 EST
On Tue, Sep 1, 2026 at 3:12 PM Jarkko Sakkinen <jarkko@xxxxxxxxxx> 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 <rafael@xxxxxxxxxx> wrote:
> > >
> > > From: "Rafael J. Wysocki" <rafael.j.wysocki@xxxxxxxxx>
> > >
> > > 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 <nathan@xxxxxxxxxx>
> > > Tested-by: Nathan Chancellor <nathan@xxxxxxxxxx>
> > > Closes: https://lore.kernel.org/linux-acpi/20260819003752.GA3063251@ax162/
> > > Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
> > > ---
> > >
> > > 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@xxxxxxxxxxxxxx/.