Arm64 double PCI ECAM reservations in acpi_resource_consumer()
Qian Cai
quic_qiancai at quicinc.com
Thu Jun 3 08:44:45 PDT 2021
On 6/3/2021 10:16 AM, Lorenzo Pieralisi wrote:
> This is not the "reservation". AFAICS acpi_resource_consumer() checks
> whether the ECAM region is part of _a_ given ACPI device _CRS in the
> namespace, it does not "reserve" anything.
>
> IIUC the issue here is that we request the ECAM region in
> pci_ecam_create() and later the code in:
Okay, I was confused by the code. I thought once acpi_resource_consumer() returned something, it is "reserved".
adev = acpi_resource_consumer(&cfgres);
if (adev)
dev_info(dev, "ECAM area %pR reserved by %s\n", &cfgres,
dev_name(&adev->dev));
else
dev_warn(dev, FW_BUG "ECAM area %pR not reserved in ACPI namespace\n",
&cfgres);
>
> drivers/pnp/system.c
>
> tries to request the ECAM region (that lives in the PNP0C02 _CRS) and
> fails (see reserve_range() and request_mem_region()).
>
> As the comment in reserve_range() goes, this is harmless, not sure
> whether there is anything to do about it.
Actually, the comment said it is "usually harmless", so it is a tricky for an average Joe to figure out if one case falls into the "usual" bracket or not at the first place.
More information about the linux-arm-kernel
mailing list