[x86] ata_piix: reenable MS Virtual PC guests (fixes regression in 3.2.19-1)
svn path=/dists/sid/linux/; revision=19892
This commit is contained in:
parent
3d5bffe36d
commit
36b0443075
|
@ -8,6 +8,10 @@ linux (3.2.39-3) UNRELEASED; urgency=low
|
|||
* [{mips,mipsel}/{4,5}kc-malta] Enable HW_RANDOM as module so that both
|
||||
flavours have a consistent configuration.
|
||||
|
||||
[ Ben Hutchings ]
|
||||
* [x86] ata_piix: reenable MS Virtual PC guests (fixes regression in
|
||||
3.2.19-1)
|
||||
|
||||
-- Ben Hutchings <ben@decadent.org.uk> Wed, 27 Feb 2013 03:48:30 +0000
|
||||
|
||||
linux (3.2.39-2) unstable; urgency=high
|
||||
|
|
145
debian/patches/features/x86/hyperv/0080-ata_piix-reenable-ms-virtual-pc-guests.patch
vendored
Normal file
145
debian/patches/features/x86/hyperv/0080-ata_piix-reenable-ms-virtual-pc-guests.patch
vendored
Normal file
|
@ -0,0 +1,145 @@
|
|||
From: Olaf Hering <olaf@aepfle.de>
|
||||
Date: Tue, 18 Sep 2012 17:48:01 +0200
|
||||
Subject: ata_piix: reenable MS Virtual PC guests
|
||||
|
||||
commit d9904344fc4052fbe7e4dc137eba0dcdadf326bd upstream.
|
||||
|
||||
An earlier commit cd006086fa5d91414d8ff9ff2b78fbb593878e3c ("ata_piix:
|
||||
defer disks to the Hyper-V drivers by default") broke MS Virtual PC
|
||||
guests. Hyper-V guests and Virtual PC guests have nearly identical DMI
|
||||
info. As a result the driver does currently ignore the emulated hardware
|
||||
in Virtual PC guests and defers the handling to hv_blkvsc. Since Virtual
|
||||
PC does not offer paravirtualized drivers no disks will be found in the
|
||||
guest.
|
||||
|
||||
One difference in the DMI info is the product version. This patch adds a
|
||||
match for MS Virtual PC 2007 and "unignores" the emulated hardware.
|
||||
|
||||
This was reported for openSuSE 12.1 in bugzilla:
|
||||
https://bugzilla.novell.com/show_bug.cgi?id=737532
|
||||
|
||||
Here is a detailed list of DMI info from example guests:
|
||||
|
||||
hwinfo --bios:
|
||||
|
||||
virtual pc guest:
|
||||
|
||||
System Info: #1
|
||||
Manufacturer: "Microsoft Corporation"
|
||||
Product: "Virtual Machine"
|
||||
Version: "VS2005R2"
|
||||
Serial: "3178-9905-1533-4840-9282-0569-59"
|
||||
UUID: undefined, but settable
|
||||
Wake-up: 0x06 (Power Switch)
|
||||
Board Info: #2
|
||||
Manufacturer: "Microsoft Corporation"
|
||||
Product: "Virtual Machine"
|
||||
Version: "5.0"
|
||||
Serial: "3178-9905-1533-4840-9282-0569-59"
|
||||
Chassis Info: #3
|
||||
Manufacturer: "Microsoft Corporation"
|
||||
Version: "5.0"
|
||||
Serial: "3178-9905-1533-4840-9282-0569-59"
|
||||
Asset Tag: "7188-3705-6309-9738-9645-0364-00"
|
||||
Type: 0x03 (Desktop)
|
||||
Bootup State: 0x03 (Safe)
|
||||
Power Supply State: 0x03 (Safe)
|
||||
Thermal State: 0x01 (Other)
|
||||
Security Status: 0x01 (Other)
|
||||
|
||||
win2k8 guest:
|
||||
|
||||
System Info: #1
|
||||
Manufacturer: "Microsoft Corporation"
|
||||
Product: "Virtual Machine"
|
||||
Version: "7.0"
|
||||
Serial: "9106-3420-9819-5495-1514-2075-48"
|
||||
UUID: undefined, but settable
|
||||
Wake-up: 0x06 (Power Switch)
|
||||
Board Info: #2
|
||||
Manufacturer: "Microsoft Corporation"
|
||||
Product: "Virtual Machine"
|
||||
Version: "7.0"
|
||||
Serial: "9106-3420-9819-5495-1514-2075-48"
|
||||
Chassis Info: #3
|
||||
Manufacturer: "Microsoft Corporation"
|
||||
Version: "7.0"
|
||||
Serial: "9106-3420-9819-5495-1514-2075-48"
|
||||
Asset Tag: "7076-9522-6699-1042-9501-1785-77"
|
||||
Type: 0x03 (Desktop)
|
||||
Bootup State: 0x03 (Safe)
|
||||
Power Supply State: 0x03 (Safe)
|
||||
Thermal State: 0x01 (Other)
|
||||
Security Status: 0x01 (Other)
|
||||
|
||||
win2k12 guest:
|
||||
|
||||
System Info: #1
|
||||
Manufacturer: "Microsoft Corporation"
|
||||
Product: "Virtual Machine"
|
||||
Version: "7.0"
|
||||
Serial: "8179-1954-0187-0085-3868-2270-14"
|
||||
UUID: undefined, but settable
|
||||
Wake-up: 0x06 (Power Switch)
|
||||
Board Info: #2
|
||||
Manufacturer: "Microsoft Corporation"
|
||||
Product: "Virtual Machine"
|
||||
Version: "7.0"
|
||||
Serial: "8179-1954-0187-0085-3868-2270-14"
|
||||
Chassis Info: #3
|
||||
Manufacturer: "Microsoft Corporation"
|
||||
Version: "7.0"
|
||||
Serial: "8179-1954-0187-0085-3868-2270-14"
|
||||
Asset Tag: "8374-0485-4557-6331-0620-5845-25"
|
||||
Type: 0x03 (Desktop)
|
||||
Bootup State: 0x03 (Safe)
|
||||
Power Supply State: 0x03 (Safe)
|
||||
Thermal State: 0x01 (Other)
|
||||
Security Status: 0x01 (Other)
|
||||
|
||||
Signed-off-by: Olaf Hering <olaf@aepfle.de>
|
||||
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
|
||||
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
|
||||
---
|
||||
drivers/ata/ata_piix.c | 25 ++++++++++++++++++++++---
|
||||
1 file changed, 22 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/drivers/ata/ata_piix.c b/drivers/ata/ata_piix.c
|
||||
index ef773e1..bec35f4 100644
|
||||
--- a/drivers/ata/ata_piix.c
|
||||
+++ b/drivers/ata/ata_piix.c
|
||||
@@ -1585,12 +1585,31 @@ static void piix_ignore_devices_quirk(struct ata_host *host)
|
||||
},
|
||||
{ } /* terminate list */
|
||||
};
|
||||
- const struct dmi_system_id *dmi = dmi_first_match(ignore_hyperv);
|
||||
+ static const struct dmi_system_id allow_virtual_pc[] = {
|
||||
+ {
|
||||
+ /* In MS Virtual PC guests the DMI ident is nearly
|
||||
+ * identical to a Hyper-V guest. One difference is the
|
||||
+ * product version which is used here to identify
|
||||
+ * a Virtual PC guest. This entry allows ata_piix to
|
||||
+ * drive the emulated hardware.
|
||||
+ */
|
||||
+ .ident = "MS Virtual PC 2007",
|
||||
+ .matches = {
|
||||
+ DMI_MATCH(DMI_SYS_VENDOR,
|
||||
+ "Microsoft Corporation"),
|
||||
+ DMI_MATCH(DMI_PRODUCT_NAME, "Virtual Machine"),
|
||||
+ DMI_MATCH(DMI_PRODUCT_VERSION, "VS2005R2"),
|
||||
+ },
|
||||
+ },
|
||||
+ { } /* terminate list */
|
||||
+ };
|
||||
+ const struct dmi_system_id *ignore = dmi_first_match(ignore_hyperv);
|
||||
+ const struct dmi_system_id *allow = dmi_first_match(allow_virtual_pc);
|
||||
|
||||
- if (dmi && prefer_ms_hyperv) {
|
||||
+ if (ignore && !allow && prefer_ms_hyperv) {
|
||||
host->flags |= ATA_HOST_IGNORE_ATA;
|
||||
dev_info(host->dev, "%s detected, ATA device ignore set\n",
|
||||
- dmi->ident);
|
||||
+ ignore->ident);
|
||||
}
|
||||
#endif
|
||||
}
|
|
@ -146,6 +146,7 @@ features/x86/hyperv/0076-net-hyperv-Fix-the-code-handling-tx-busy.patch
|
|||
features/x86/hyperv/0077-hv-remove-the-second-argument-of-k-un-map_atomic.patch
|
||||
features/x86/hyperv/0078-libata-add-a-host-flag-to-ignore-detected-ATA-device.patch
|
||||
features/x86/hyperv/0079-ata_piix-defer-disks-to-the-Hyper-V-drivers-by-defau.patch
|
||||
features/x86/hyperv/0080-ata_piix-reenable-ms-virtual-pc-guests.patch
|
||||
|
||||
features/x86/efi-stub/0001-x86-Add-missing-bzImage-fields-to-struct-setup_heade.patch
|
||||
features/x86/efi-stub/0002-x86-Don-t-use-magic-strings-for-EFI-loader-signature.patch
|
||||
|
|
Loading…
Reference in New Issue