On Fri, 4 Feb 2022 09:01:31 -0500 "Michael S. Tsirkin" <m...@redhat.com> wrote:
> On Wed, Feb 02, 2022 at 02:10:10PM +0000, Jonathan Cameron wrote: > > From: Jonathan Cameron <jonathan.came...@huawei.com> > > > > The consolidation of DSDT AML generation for PCI host bridges > > lead to some minor ordering changes and the addition of _ADR > > with a default of 0 for those case that didn't already have it. > > Only DSDT.viot test is affected. > > > > Changes all similar to: > > > > Scope (\_SB) > > { > > Device (PC30) > > { > > - Name (_UID, 0x30) // _UID: Unique ID > > Name (_BBN, 0x30) // _BBN: BIOS Bus Number > > Name (_HID, EisaId ("PNP0A08") /* PCI Express Bus */) // _HID: > > Hardware ID > > Name (_CID, EisaId ("PNP0A03") /* PCI Bus */) // _CID: Compatible > > ID > > + Name (_ADR, Zero) // _ADR: Address > > + Name (_UID, 0x30) // _UID: Unique ID > > Method (_OSC, 4, NotSerialized) // _OSC: Operating System > > Capabilities > > > > Signed-off-by: Jonathan Cameron <jonathan.came...@huawei.com> > > A bit worried about _ADR here. It's probably fine as it should be > unused but in the past some changes like that confused windows guests > where they would lose e.g. a static ip config since from their > POV device address changed. Spec[1] doesn't mention _ADR in context of host bridge(s) at all, for all I know it shouldn't be there. QEMU inherited it from SeaBIOS where it is dated to 2008 (as part of large blob adding ACPI for PCI). Instead of spreading undefined field to other places, I'd prefer removing it from root host bridge. But as Michael said it should be very well tested with various guest OSes. Jonathan, Can you compare nic naming (as guest sees it) with current master and without _ADR on root host bridge? One way to test it could be 1. start QEMU(master) configure static IP addr on an interface, and shutdown guest 2. start QEMU(-_ARR) with guest image from step 1 and see if interface is still there with IP address it was configured. test matrix should be something like that: PCI(pc machine),PCI-E (q35 machine)/ Windows 2012-whatever latest Windows, some contemporary linux, ancient linux (pre 'stable' interface naming) (something like RHEL6 or any other distro from that era) 1) PCI_Firmware_v3.2_01-26-2015_ts_clean_Firmware_Final > Igor, what do you think? > > > --- > > tests/data/acpi/q35/DSDT.viot | Bin 9398 -> 9416 bytes > > tests/qtest/bios-tables-test-allowed-diff.h | 1 - > > 2 files changed, 1 deletion(-) > > > > diff --git a/tests/data/acpi/q35/DSDT.viot b/tests/data/acpi/q35/DSDT.viot > > index > > 1c3b4da5cbe81ecab5e1ef50d383b561c5e0f55f..207ac5b9ae4c3a4bc0094c2242d1a1b08771b784 > > 100644 > > GIT binary patch > > delta 139 > > zcmdnydBT&+CD<k8gbD)#<CBeCu5zLdVlnZ-PVv!A?xF$C#s(bmPELMY6KfQhxC}No > > z$Z0Y1qbM*kn0!E9nwKNq(Itq1BR<sAg-ZdbOrCM_F9mK?rG^HRr4><?3V@Yv4pmBI > > F0sxp4B{u*7 > > > > delta 143 > > zcmX@%xy_TyCD<ion+gL1<MNGMu5zMYqA~HoPVv!Aj-mn1#s(bmp`I>WlVjy%CeC%7 > > z+^Kj^(SX5#0jQdxl0g7Ptr1kM!sPw((lEse3<_8k8$uNeOjb|?Dc;<vXwM7)8)+to > > > > diff --git a/tests/qtest/bios-tables-test-allowed-diff.h > > b/tests/qtest/bios-tables-test-allowed-diff.h > > index 08a8095432..dfb8523c8b 100644 > > --- a/tests/qtest/bios-tables-test-allowed-diff.h > > +++ b/tests/qtest/bios-tables-test-allowed-diff.h > > @@ -1,2 +1 @@ > > /* List of comma-separated changed AML files to ignore */ > > -"tests/data/acpi/q35/DSDT.viot", > > -- > > 2.32.0 >