diff options
Diffstat (limited to 'hw')
-rw-r--r-- | hw/mc146818rtc.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/hw/mc146818rtc.c b/hw/mc146818rtc.c index 7d84ce3d74..c79fca7d68 100644 --- a/hw/mc146818rtc.c +++ b/hw/mc146818rtc.c @@ -570,7 +570,11 @@ static void rtc_update_time(RTCState *s) guest_nsec = get_guest_rtc_ns(s); guest_sec = guest_nsec / NSEC_PER_SEC; gmtime_r(&guest_sec, &ret); - rtc_set_cmos(s, &ret); + + /* Is SET flag of Register B disabled? */ + if ((s->cmos_data[RTC_REG_B] & REG_B_SET) == 0) { + rtc_set_cmos(s, &ret); + } } static int update_in_progress(RTCState *s) |