Sophie

Sophie

distrib > Scientific%20Linux > 5x > x86_64 > by-pkgid > 3160499aacb81f6735941eb4c372d87a > files > 170

kvm-83-164.el5_5.30.src.rpm

From 3df18b6cd035368e13bc99cefa24701cc8a06e87 Mon Sep 17 00:00:00 2001
From: Juan Quintela <quintela@redhat.com>
Date: Tue, 22 Dec 2009 17:06:01 -0200
Subject: [PATCH 14/16] RHEL5.4 needs ide at device version 3

RH-Author: Juan Quintela <quintela@redhat.com>
Message-id: <86d3a830465675b90964496474d1f63aecd6ebfb.1261501421.git.quintela@redhat.com>
Patchwork-id: 5899
O-Subject: [PATCH 09/11] RHEL5.4 needs ide at device version 3
Bugzilla: 541731
RH-Acked-by: Markus Armbruster <armbru@redhat.com>
RH-Acked-by: Dor Laor <dlaor@redhat.com>
RH-Acked-by: Michael S. Tsirkin <mst@redhat.com>
RH-Acked-by: Marcelo Tosatti <mtosatti@redhat.com>

Signed-off-by: Juan Quintela <quintela@redhat.com>
---
 qemu/hw/ide.c |   10 +++++++++-
 qemu/hw/pc.c  |    1 +
 2 files changed, 10 insertions(+), 1 deletions(-)

Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
---
 qemu/hw/ide.c |   10 +++++++++-
 qemu/hw/pc.c  |    1 +
 2 files changed, 10 insertions(+), 1 deletions(-)

diff --git a/qemu/hw/ide.c b/qemu/hw/ide.c
index fa83bab..5c7cfca 100644
--- a/qemu/hw/ide.c
+++ b/qemu/hw/ide.c
@@ -3408,6 +3408,7 @@ void pci_piix3_ide_init(PCIBus *bus, BlockDriverState **hd_table, int devfn,
     PCIIDEState *d;
     uint8_t *pci_conf;
     int i;
+    int version_id = machine_device_version("ide", 4);
 
     /* register a function 1 of PIIX3 */
     d = (PCIIDEState *)pci_register_device(bus, "PIIX3 IDE",
@@ -3441,7 +3442,14 @@ void pci_piix3_ide_init(PCIBus *bus, BlockDriverState **hd_table, int devfn,
     qemu_register_reset(piix3_reset, d);
     piix3_reset(d);
 
-    register_savevm("ide", 0, 4, pci_ide_save, pci_ide_load, d);
+    if (version_id < 4) {
+        for (i = 0; i < 4; i++) {
+            if (d->ide_if[i].bs) {
+                d->ide_if[i].bs->enable_write_cache = 0;
+            }
+        }
+    }
+    register_savevm("ide", 0, version_id, pci_ide_save, pci_ide_load, d);
 }
 
 /* hd_table must contain 4 block drivers */
diff --git a/qemu/hw/pc.c b/qemu/hw/pc.c
index 9355d55..214d292 100644
--- a/qemu/hw/pc.c
+++ b/qemu/hw/pc.c
@@ -1294,6 +1294,7 @@ QEMUMachine rhel540_machine = {
     .devices = (DeviceVersion []) {
 		{ .name = "cpu", .version_id = 7 },
 		{ .name = "kvmclock", .version_id =  SAVEVM_DISABLED},
+		{ .name = "ide", .version_id =  3},
 		{ /* Empty */ }
     },
 };
-- 
1.6.3.rc4.29.g8146