From: Thomas Huth Date: Tue, 10 Jan 2023 09:53:51 +0000 (+0100) Subject: softmmu/rtc: Emit warning when using driftfix=slew on systems without mc146818 X-Git-Tag: v8.0.0-rc0~96^2~7 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=e8dc34196b2a81b21469f6d95afc390ef645e63b;p=thirdparty%2Fqemu.git softmmu/rtc: Emit warning when using driftfix=slew on systems without mc146818 The 'slew' lost tick policy is only available on systems with a mc146818 RTC. On other systems, "-rtc driftfix=slew" is currently silently ignored. Let's emit at least a warning in this case to make the users aware that there is something wrong in their command line settings. Reviewed-by: Philippe Mathieu-Daudé Signed-off-by: Thomas Huth Reviewed-by: Mark Cave-Ayland Message-Id: <20230110095351.611724-5-thuth@redhat.com> Signed-off-by: Philippe Mathieu-Daudé --- diff --git a/softmmu/rtc.c b/softmmu/rtc.c index 7e2956f81e9..f7114bed7d5 100644 --- a/softmmu/rtc.c +++ b/softmmu/rtc.c @@ -33,6 +33,7 @@ #include "sysemu/replay.h" #include "sysemu/sysemu.h" #include "sysemu/rtc.h" +#include "hw/rtc/mc146818rtc.h" static enum { RTC_BASE_UTC, @@ -177,10 +178,13 @@ void configure_rtc(QemuOpts *opts) value = qemu_opt_get(opts, "driftfix"); if (value) { if (!strcmp(value, "slew")) { - object_register_sugar_prop("mc146818rtc", + object_register_sugar_prop(TYPE_MC146818_RTC, "lost_tick_policy", "slew", false); + if (!object_class_by_name(TYPE_MC146818_RTC)) { + warn_report("driftfix 'slew' is not available with this machine"); + } } else if (!strcmp(value, "none")) { /* discard is default */ } else {