Arm64 double PCI ECAM reservations in acpi_resource_consumer()

Qian Cai quic_qiancai at quicinc.com
Wed Jun 2 14:49:21 PDT 2021


Bjorn, I noticed PCI ECAM could be reserved twice on arm64. Firs time through,

[   19.087790][    T1]  acpi_ns_walk_namespace+0xc0/0x390
[   19.092927][    T1]  acpi_get_devices+0x160/0x1a4
[   19.097629][    T1]  acpi_resource_consumer+0x8c/0xc0
[   19.102680][    T1]  pci_acpi_scan_root+0x158/0x4c8
[   19.107555][    T1]  acpi_pci_root_add+0x450/0x8e8
[   19.112345][    T1]  acpi_bus_attach+0x300/0x7d0
[   19.116960][    T1]  acpi_bus_attach+0x178/0x7d0
[   19.121576][    T1]  acpi_bus_attach+0x178/0x7d0
[   19.126190][    T1]  acpi_bus_scan+0xa8/0x170
[   19.130545][    T1]  acpi_scan_init+0x220/0x558
[   19.135074][    T1]  acpi_init+0x1f4/0x270

where pci_acpi_setup_ecam_mapping() confirmed all reservations are succeed. Then,

[   19.880588][    T1]  acpi_ns_walk_namespace+0xc0/0x390
[   19.885725][    T1]  acpi_get_devices+0x160/0x1a4
[   19.890426][    T1]  pnpacpi_init+0xa0/0x10

As the results, those messages are showed up during the boot in pnpacpi_init().

[ 17.763968] system 00:00: [mem 0x10000000000-0x1000fffffff window] could not be reserved
[ 17.772900] system 00:00: [mem 0x7800000000-0x780fffffff window] could not be reserved
[ 17.781627] system 00:00: [mem 0x7000000000-0x700fffffff window] could not be reserved
[ 17.790350] system 00:00: [mem 0x6000000000-0x600fffffff window] could not be reserved
[ 17.799073] system 00:00: [mem 0x5800000000-0x580fffffff window] could not be reserved
[ 17.808155] system 00:00: [mem 0x1000000000-0x100fffffff window] could not be reserved
[ 17.816862] system 00:00: [mem 0x600000000-0x60fffffff window] could not be reserved
[ 17.825417] system 00:00: [mem 0x400000000-0x40fffffff window] could not be reserved

Looking through the x86's version of pci_acpi_scan_root(), it won't call acpi_resource_consumer(), so I suppose this bug is only affecting arm64?



More information about the linux-arm-kernel mailing list