]> git.ipfire.org Git - thirdparty/qemu.git/commit
pci: acpi: Windows 'PCI Label Id' bug workaround
authorIgor Mammedov <imammedo@redhat.com>
Wed, 15 Jan 2025 12:53:41 +0000 (13:53 +0100)
committerMichael Tokarev <mjt@tls.msk.ru>
Fri, 17 Jan 2025 07:34:20 +0000 (10:34 +0300)
commit89caa45bf3cf4ac161184806cf6d0399f267bc6d
tree1dd2e3e64a42b9631bcf211b96b6084ca4e44876
parent7171f0164cf8c8d6a4eb62dbb47b2698329f36c4
pci: acpi: Windows 'PCI Label Id' bug workaround

Current versions of Windows call _DSM(func=7) regardless
of whether it is supported or not. It leads to NICs having bogus
'PCI Label Id = 0', where none should be set at all.

Also presence of 'PCI Label Id' triggers another Windows bug
on localized versions that leads to hangs. The later bug is fixed
in latest updates for 'Windows Server' but not in consumer
versions of Windows (and there is no plans to fix it
as far as I'm aware).

Given it's easy, implement Microsoft suggested workaround
(return invalid Package) so that affected Windows versions
could boot on QEMU.
This would effectvely remove bogus 'PCI Label Id's on NICs,
but MS teem confirmed that flipping 'PCI Label Id' should not
change 'Network Connection' ennumeration, so it should be safe
for QEMU to change _DSM without any compat code.

Smoke tested with WinXP and WS2022
Resolves: https://gitlab.com/qemu-project/qemu/-/issues/774
Signed-off-by: Igor Mammedov <imammedo@redhat.com>
Message-Id: <20250115125342.3883374-3-imammedo@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
(cherry picked from commit 0b053391985abcc40b16ac8fc4a7f6588d1d95c1)
Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
hw/i386/acpi-build.c