[kernel] r19892 - in dists/sid/linux/debian: . patches patches/features/x86/hyperv

Ben Hutchings benh at alioth.debian.org
Sun Mar 3 01:41:04 UTC 2013


Author: benh
Date: Sun Mar  3 01:41:04 2013
New Revision: 19892

Log:
[x86] ata_piix: reenable MS Virtual PC guests (fixes regression in 3.2.19-1)

Added:
   dists/sid/linux/debian/patches/features/x86/hyperv/0080-ata_piix-reenable-ms-virtual-pc-guests.patch
Modified:
   dists/sid/linux/debian/changelog
   dists/sid/linux/debian/patches/series

Modified: dists/sid/linux/debian/changelog
==============================================================================
--- dists/sid/linux/debian/changelog	Sat Mar  2 22:06:05 2013	(r19891)
+++ dists/sid/linux/debian/changelog	Sun Mar  3 01:41:04 2013	(r19892)
@@ -8,6 +8,10 @@
   * [{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 at decadent.org.uk>  Wed, 27 Feb 2013 03:48:30 +0000
 
 linux (3.2.39-2) unstable; urgency=high

Added: dists/sid/linux/debian/patches/features/x86/hyperv/0080-ata_piix-reenable-ms-virtual-pc-guests.patch
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/sid/linux/debian/patches/features/x86/hyperv/0080-ata_piix-reenable-ms-virtual-pc-guests.patch	Sun Mar  3 01:41:04 2013	(r19892)
@@ -0,0 +1,145 @@
+From: Olaf Hering <olaf at 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 at aepfle.de>
+Signed-off-by: Jeff Garzik <jgarzik at redhat.com>
+Signed-off-by: Ben Hutchings <ben at 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
+ }

Modified: dists/sid/linux/debian/patches/series
==============================================================================
--- dists/sid/linux/debian/patches/series	Sat Mar  2 22:06:05 2013	(r19891)
+++ dists/sid/linux/debian/patches/series	Sun Mar  3 01:41:04 2013	(r19892)
@@ -146,6 +146,7 @@
 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



More information about the Kernel-svn-changes mailing list