From: Alex Bennée Date: Mon, 16 Sep 2024 08:54:00 +0000 (+0100) Subject: contrib/plugins: avoid hanging program X-Git-Tag: v9.2.0-rc0~76^2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=8148fb56c753908fcc41d52846f9d8e6ae5f7daf;p=thirdparty%2Fqemu.git contrib/plugins: avoid hanging program Although we asks for instructions per second we work in quanta and that cannot be 0. Fail to load the plugin instead and report the minimum IPS we can handle. Reported-by: Elisha Hollander Reviewed-by: Richard Henderson Signed-off-by: Alex Bennée Reviewed-by: Pierrick Bouvier Message-Id: <20240916085400.1046925-19-alex.bennee@linaro.org> --- diff --git a/contrib/plugins/ips.c b/contrib/plugins/ips.c index 29fa556d0ff..e5297dbb01b 100644 --- a/contrib/plugins/ips.c +++ b/contrib/plugins/ips.c @@ -152,6 +152,12 @@ QEMU_PLUGIN_EXPORT int qemu_plugin_install(qemu_plugin_id_t id, vcpus = qemu_plugin_scoreboard_new(sizeof(vCPUTime)); max_insn_per_quantum = max_insn_per_second / NUM_TIME_UPDATE_PER_SEC; + if (max_insn_per_quantum == 0) { + fprintf(stderr, "minimum of %d instructions per second needed\n", + NUM_TIME_UPDATE_PER_SEC); + return -1; + } + time_handle = qemu_plugin_request_time_control(); g_assert(time_handle);