Comment 63 for bug 1860284

Revision history for this message
In , mika.westerberg (mika.westerberg-linux-kernel-bugs) wrote :

Created attachment 287619
Skip clipping e820 regions

It looks like the Yoga BIOS-e820 memory map includes some of the memory space reserved for root bridge and the devices below it:

4bc50000-cfffffff BIOS-e820 reserved area
  65400000-bfffffff Root bridge
    66000000-721fffff PCIe root port 07.1

There is code in arch/x86/kernel/resource.c (arch_remove_reservations()) that clips the resource so that it avoids these regions. This is why we can't find memory space for the upstream port.

I wonder if you can try the attached hack patch that skips the clipping?

The changelog in 4dc2287c1805 ("x86: avoid E820 regions when allocating address space") says that Windows seems to ignore these reserved regions which might explain why this works in Windows.