diff options
author | Peter Maydell <peter.maydell@linaro.org> | 2023-08-31 09:45:18 +0100 |
---|---|---|
committer | Peter Maydell <peter.maydell@linaro.org> | 2023-08-31 09:45:18 +0100 |
commit | c0a63857282afebaeed606a3dca803bb3bfb6aa3 (patch) | |
tree | f574b414e4bc8e1bf9dd799043126ae8bc617f88 | |
parent | 279695a4a4472c41d8764317e4fae04d93ee2b42 (diff) | |
download | qemu-c0a63857282afebaeed606a3dca803bb3bfb6aa3.zip qemu-c0a63857282afebaeed606a3dca803bb3bfb6aa3.tar.gz qemu-c0a63857282afebaeed606a3dca803bb3bfb6aa3.tar.bz2 |
hw/rtc/aspeed_rtc: Use 64-bit offset for holding time_t difference
In the aspeed_rtc device we store a difference between two time_t
values in an 'int'. This is not really correct when time_t could
be 64 bits. Enlarge the field to 'int64_t'.
This is a migration compatibility break for the aspeed boards.
While we are changing the vmstate, remove the accidental
duplicate of the offset field.
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Cédric Le Goater <clg@kaod.org>
-rw-r--r-- | hw/rtc/aspeed_rtc.c | 5 | ||||
-rw-r--r-- | include/hw/rtc/aspeed_rtc.h | 2 |
2 files changed, 3 insertions, 4 deletions
diff --git a/hw/rtc/aspeed_rtc.c b/hw/rtc/aspeed_rtc.c index f6da7b6..fa861e2 100644 --- a/hw/rtc/aspeed_rtc.c +++ b/hw/rtc/aspeed_rtc.c @@ -136,11 +136,10 @@ static const MemoryRegionOps aspeed_rtc_ops = { static const VMStateDescription vmstate_aspeed_rtc = { .name = TYPE_ASPEED_RTC, - .version_id = 1, + .version_id = 2, .fields = (VMStateField[]) { VMSTATE_UINT32_ARRAY(reg, AspeedRtcState, 0x18), - VMSTATE_INT32(offset, AspeedRtcState), - VMSTATE_INT32(offset, AspeedRtcState), + VMSTATE_INT64(offset, AspeedRtcState), VMSTATE_END_OF_LIST() } }; diff --git a/include/hw/rtc/aspeed_rtc.h b/include/hw/rtc/aspeed_rtc.h index df61e46..596dfeb 100644 --- a/include/hw/rtc/aspeed_rtc.h +++ b/include/hw/rtc/aspeed_rtc.h @@ -18,7 +18,7 @@ struct AspeedRtcState { qemu_irq irq; uint32_t reg[0x18]; - int offset; + int64_t offset; }; |