aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaolo Bonzini <pbonzini@redhat.com>2023-03-30 14:03:10 +0200
committerPaolo Bonzini <pbonzini@redhat.com>2023-04-20 11:17:35 +0200
commita64508304edbe51c6004a9af4e75e0e329797079 (patch)
tree92d443f162368ebe1dcf97f6b4f3660e60a2f28a
parent987b63f24afe027a09b1c549c05a032a477f7e96 (diff)
downloadqemu-a64508304edbe51c6004a9af4e75e0e329797079.zip
qemu-a64508304edbe51c6004a9af4e75e0e329797079.tar.gz
qemu-a64508304edbe51c6004a9af4e75e0e329797079.tar.bz2
lasi: fix RTC migration
Migrate rtc_ref (which only needs to be 32-bit because it is summed to a 32-bit register), which requires bumping the migration version. The HPPA machine does not have versioned machine types so it is okay to block migration to old versions of QEMU. While at it, drop the write-only field rtc from LasiState. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
-rw-r--r--hw/misc/lasi.c4
-rw-r--r--include/hw/misc/lasi.h3
2 files changed, 3 insertions, 4 deletions
diff --git a/hw/misc/lasi.c b/hw/misc/lasi.c
index 23a7634..ff9dc89 100644
--- a/hw/misc/lasi.c
+++ b/hw/misc/lasi.c
@@ -194,7 +194,7 @@ static const MemoryRegionOps lasi_chip_ops = {
static const VMStateDescription vmstate_lasi = {
.name = "Lasi",
- .version_id = 1,
+ .version_id = 2,
.minimum_version_id = 1,
.fields = (VMStateField[]) {
VMSTATE_UINT32(irr, LasiState),
@@ -204,6 +204,7 @@ static const VMStateDescription vmstate_lasi = {
VMSTATE_UINT32(iar, LasiState),
VMSTATE_UINT32(errlog, LasiState),
VMSTATE_UINT32(amr, LasiState),
+ VMSTATE_UINT32_V(rtc_ref, LasiState, 2),
VMSTATE_END_OF_LIST()
}
};
@@ -233,7 +234,6 @@ static void lasi_reset(DeviceState *dev)
s->iar = 0xFFFB0000 + 3; /* CPU_HPA + 3 */
/* Real time clock (RTC), it's only one 32-bit counter @9000 */
- s->rtc = time(NULL);
s->rtc_ref = 0;
}
diff --git a/include/hw/misc/lasi.h b/include/hw/misc/lasi.h
index ecc7065..0a8c735 100644
--- a/include/hw/misc/lasi.h
+++ b/include/hw/misc/lasi.h
@@ -69,8 +69,7 @@ struct LasiState {
uint32_t errlog;
uint32_t amr;
- uint32_t rtc;
- time_t rtc_ref;
+ uint32_t rtc_ref;
MemoryRegion this_mem;
};