From a8b9612a7146ae378f82a58c4ef65fe56eb09b6d Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Mon, 4 Mar 2013 15:55:48 +0800 Subject: [PATCH] 3.4-stable patches added patches: ata_piix-reenable-ms-virtual-pc-guests.patch --- ...a_piix-reenable-ms-virtual-pc-guests.patch | 147 ++++++++++++++++++ queue-3.4/series | 1 + 2 files changed, 148 insertions(+) create mode 100644 queue-3.4/ata_piix-reenable-ms-virtual-pc-guests.patch diff --git a/queue-3.4/ata_piix-reenable-ms-virtual-pc-guests.patch b/queue-3.4/ata_piix-reenable-ms-virtual-pc-guests.patch new file mode 100644 index 00000000000..f1d9e5d5619 --- /dev/null +++ b/queue-3.4/ata_piix-reenable-ms-virtual-pc-guests.patch @@ -0,0 +1,147 @@ +From d9904344fc4052fbe7e4dc137eba0dcdadf326bd Mon Sep 17 00:00:00 2001 +From: Olaf Hering +Date: Tue, 18 Sep 2012 17:48:01 +0200 +Subject: ata_piix: reenable MS Virtual PC guests + +From: Olaf Hering + +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 +Signed-off-by: Jeff Garzik +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/ata/ata_piix.c | 25 ++++++++++++++++++++++--- + 1 file changed, 22 insertions(+), 3 deletions(-) + +--- a/drivers/ata/ata_piix.c ++++ b/drivers/ata/ata_piix.c +@@ -1594,12 +1594,31 @@ static void piix_ignore_devices_quirk(st + }, + { } /* 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 + } diff --git a/queue-3.4/series b/queue-3.4/series index c55b44b5641..26efbc2b4b2 100644 --- a/queue-3.4/series +++ b/queue-3.4/series @@ -8,3 +8,4 @@ btrfs-init-io_lock-after-cloning-btrfs-device-struct.patch cifs-ensure-that-cifs_get_root-only-traverses-directories.patch nfs-don-t-allow-nfs-silly-renamed-files-to-be-deleted-no-signal.patch sunrpc-don-t-start-the-retransmission-timer-when-out-of-socket-space.patch +ata_piix-reenable-ms-virtual-pc-guests.patch -- 2.47.3