Patchwork [3/6] uhci: initialize expire_time when loading v1 vmstate

login
register
mail settings
Submitter Gerd Hoffmann
Date July 12, 2012, 1:08 p.m.
Message ID <1342098519-23261-4-git-send-email-kraxel@redhat.com>
Download mbox | patch
Permalink /patch/170648/
State New
Headers show

Comments

Gerd Hoffmann - July 12, 2012, 1:08 p.m.
$subject says all: when loading old (v1) vmstate which doesn't contain
expire_time initialize it with a reasonable default (current time).

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
---
 hw/usb/hcd-uhci.c |   12 ++++++++++++
 1 files changed, 12 insertions(+), 0 deletions(-)
Michael Tokarev - July 12, 2012, 1:15 p.m.
On 12.07.2012 17:08, Gerd Hoffmann wrote:
> $subject says all: when loading old (v1) vmstate which doesn't contain
> expire_time initialize it with a reasonable default (current time).

-stable (1.1) material?

Thanks,

/mjt

Patch

diff --git a/hw/usb/hcd-uhci.c b/hw/usb/hcd-uhci.c
index 8f652d2..2aac8a2 100644
--- a/hw/usb/hcd-uhci.c
+++ b/hw/usb/hcd-uhci.c
@@ -388,11 +388,23 @@  static const VMStateDescription vmstate_uhci_port = {
     }
 };
 
+static int uhci_post_load(void *opaque, int version_id)
+{
+    UHCIState *s = opaque;
+
+    if (version_id < 2) {
+        s->expire_time = qemu_get_clock_ns(vm_clock) +
+            (get_ticks_per_sec() / FRAME_TIMER_FREQ);
+    }
+    return 0;
+}
+
 static const VMStateDescription vmstate_uhci = {
     .name = "uhci",
     .version_id = 2,
     .minimum_version_id = 1,
     .minimum_version_id_old = 1,
+    .post_load = uhci_post_load,
     .fields      = (VMStateField []) {
         VMSTATE_PCI_DEVICE(dev, UHCIState),
         VMSTATE_UINT8_EQUAL(num_ports_vmstate, UHCIState),