mirror of
https://github.com/cloud-hypervisor/cloud-hypervisor.git
synced 2026-08-05 02:19:16 +00:00
The ACPI specification requires _UID to be unique across devices sharing the same _HID (ACPI 6.5 section 6.1.12). Currently every PciSegment emits _UID=0 for its PNP0A08 host bridge, which violates the spec when num_pci_segments > 1. Windows guests detect this during ACPI namespace enumeration and abort boot with BSOD 0xA5 ACPI_BIOS_ERROR, pointing at the _UID object of the second PNP0A08 node. Linux guests are lenient and silently accept the collision, so the issue has gone unnoticed. Use self.id as _UID, matching what _SEG does on the line above. For single-segment VMs (id == 0) this is a no-op at runtime. Signed-off-by: Max Makarov <maxpain@linux.com>