Re: [PATCH 3/3] x86/PCI: Preserve host bridge windows completely covered by E820

From: Bjorn Helgaas
Date: Wed Mar 09 2022 - 13:15:26 EST


On Sat, Mar 05, 2022 at 11:37:23AM +0100, Hans de Goede wrote:
> On 3/4/22 16:46, Hans de Goede wrote:
> > On 3/4/22 16:32, Bjorn Helgaas wrote:
> >> On Fri, Mar 04, 2022 at 03:16:42PM +0100, Hans de Goede wrote:
> >>> On 3/4/22 04:51, Bjorn Helgaas wrote:
> >>>> From: Bjorn Helgaas <bhelgaas@xxxxxxxxxx>
> >>>>
> >>>> Many folks have reported PCI devices not working. It could affect any
> >>>> device, but most reports are for Thunderbolt controllers on Lenovo Yoga and
> >>>> Clevo Barebone laptops and the touchpad on Lenovo IdeaPads.
> >>>> ...

> >>>> diff --git a/arch/x86/kernel/resource.c b/arch/x86/kernel/resource.c
> >>>> index 7378ea146976..405f0af53e3d 100644
> >>>> --- a/arch/x86/kernel/resource.c
> >>>> +++ b/arch/x86/kernel/resource.c
> >>>> @@ -39,6 +39,17 @@ void remove_e820_regions(struct device *dev, struct resource *avail)
> >>>> e820_start = entry->addr;
> >>>> e820_end = entry->addr + entry->size - 1;
> >>>>
> >>>> + /*
> >>>> + * If an E820 entry covers just part of the resource, we
> >>>> + * assume E820 is telling us about something like host
> >>>> + * bridge register space that is unavailable for PCI
> >>>> + * devices. But if it covers the *entire* resource, it's
> >>>> + * more likely just telling us that this is MMIO space, and
> >>>> + * that doesn't need to be removed.
> >>>> + */
> >>>> + if (e820_start <= avail->start && avail->end <= e820_end)
> >>>> + continue;
> >>>> +
> >>>
> >>> IMHO it would be good to add some logging here, since hitting this is
> >>> somewhat of a special case. For the Fedora test kernels I did I changed
> >>> this to:
> >>>
> >>> if (e820_start <= avail->start && avail->end <= e820_end) {
> >>> dev_info(dev, "resource %pR fully covered by e820 entry [mem %#010Lx-%#010Lx]\n",
> >>> avail, e820_start, e820_end);
> >>> continue;
> >>> }
> >>>
> >>> And I expect/hope to see this new info message on the ideapad with the
> >>> touchpad issue.

I added this logging.

> So I just got the first report back from the Fedora test 5.16.12 kernel
> with this series added. Good news on the ideapad this wotks fine to
> fix the touchpad issue (as expected).

Any "Tested-by" I could add? If we can, I'd really like to give some
credit to the folks who suffered through this and helped resolve it.

Bjorn