----- Original Message ----- > This is a second iteration of the patch. The patch has been > significantly reworked to address (offline) comments by Gleb. > > I think the infrastructure created is generic enough > to be generally useful beyond the specific bug > that I would like to fix. Specifically it > will be able to find S3 Name to patch that, > or process compiled CPU SSDT to avoid the need for > hardcoded offsets. > > Please comment. > > Main changes: > - tools rewritten in python > - Original ASL retains _EJ0 methods, BIOS patches that to EJ0_ > - generic ACP_EXTRACT infrastructure that can match Method > and Name Operators > - instead of matching specific method name, insert tags > in original DSL source and match that to AML Patch looks good to me. Acked-by: Amos Kong <akong@xxxxxxxxxx> > ----- > > Here's a bug: guest thinks it can eject VGA device and ISA bridge. > > [root@dhcp74-172 ~]#lspci > 00:00.0 Host bridge: Intel Corporation 440FX - 82441FX PMC [Natoma] > (rev 02) > 00:01.0 ISA bridge: Intel Corporation 82371SB PIIX3 ISA > [Natoma/Triton II] > 00:01.1 IDE interface: Intel Corporation 82371SB PIIX3 IDE > [Natoma/Triton II] > 00:01.3 Bridge: Intel Corporation 82371AB/EB/MB PIIX4 ACPI (rev 03) > 00:02.0 VGA compatible controller: Cirrus Logic GD 5446 > 00:03.0 PCI bridge: Red Hat, Inc. Device 0001 > 00:04.0 Ethernet controller: Qumranet, Inc. Virtio network device > 00:05.0 SCSI storage controller: Qumranet, Inc. Virtio block device > 01:00.0 Ethernet controller: Intel Corporation 82540EM Gigabit > Ethernet Controller (rev 03) > > [root@dhcp74-172 ~]# ls /sys/bus/pci/slots/1/ > adapter address attention latch module power > [root@dhcp74-172 ~]# ls /sys/bus/pci/slots/2/ > adapter address attention latch module power > > [root@dhcp74-172 ~]# echo 0 > /sys/bus/pci/slots/2/power > [root@dhcp74-172 ~]# lspci > 00:00.0 Host bridge: Intel Corporation 440FX - 82441FX PMC [Natoma] > (rev 02) > 00:01.0 ISA bridge: Intel Corporation 82371SB PIIX3 ISA > [Natoma/Triton II] > 00:01.1 IDE interface: Intel Corporation 82371SB PIIX3 IDE > [Natoma/Triton II] > 00:01.3 Bridge: Intel Corporation 82371AB/EB/MB PIIX4 ACPI (rev 03) > 00:03.0 PCI bridge: Red Hat, Inc. Device 0001 > 00:04.0 Ethernet controller: Qumranet, Inc. Virtio network device > 00:05.0 SCSI storage controller: Qumranet, Inc. Virtio block device > 01:00.0 Ethernet controller: Intel Corporation 82540EM Gigabit > Ethernet Controller (rev 03) > > This is wrong because slots 1 and 2 are marked as not hotpluggable > in qemu. > > The reason is that our acpi tables declare both _RMV with value 0, > and _EJ0 method for these slots. What happens in this case > is undocumented by ACPI spec, so linux ignores _RMV, > and windows seems to ignore _EJ0. > > The correct way to suppress hotplug is not to have _EJ0, > so this is what this patch does: it probes PIIX and > modifies DSDT to match. > > With these patches applied, we get: > > [root@dhcp74-172 ~]# ls /sys/bus/pci/slots/1/ > address > [root@dhcp74-172 ~]# ls /sys/bus/pci/slots/2/ > address > > > > Michael S. Tsirkin (3): > acpi: generate and parse mixed asl/aml listing > acpi: EJ0 method name patching > acpi: remove _RMV > > Makefile | 10 +- > src/acpi-dsdt.dsl | 96 ++++++++----------- > src/acpi.c | 31 ++++++ > tools/acpi_extract.py | 195 > ++++++++++++++++++++++++++++++++++++++ > tools/acpi_extract_preprocess.py | 37 +++++++ > 5 files changed, 307 insertions(+), 62 deletions(-) > create mode 100755 tools/acpi_extract.py > create mode 100755 tools/acpi_extract_preprocess.py > > -- > 1.7.5.53.gc233e > -- > To unsubscribe from this list: send the line "unsubscribe kvm" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html > -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html