plugins: Iterate on cb_lists in qemu_plugin_user_exit
Rather than iterate over all plugins for all events, iterate over plugins that have registered a given event. Signed-off-by: Richard Henderson <richard.henderson@linaro.org> Message-Id: <20230117035701.168514-4-richard.henderson@linaro.org> Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org> Signed-off-by: Alex Bennée <alex.bennee@linaro.org> Message-Id: <20230124180127.1881110-36-alex.bennee@linaro.org>
This commit is contained in:
parent
882f5b1b44
commit
f45549233f
@ -514,9 +514,10 @@ void qemu_plugin_user_exit(void)
|
||||
/* un-register all callbacks except the final AT_EXIT one */
|
||||
for (ev = 0; ev < QEMU_PLUGIN_EV_MAX; ev++) {
|
||||
if (ev != QEMU_PLUGIN_EV_ATEXIT) {
|
||||
struct qemu_plugin_ctx *ctx;
|
||||
QTAILQ_FOREACH(ctx, &plugin.ctxs, entry) {
|
||||
plugin_unregister_cb__locked(ctx, ev);
|
||||
struct qemu_plugin_cb *cb, *next;
|
||||
|
||||
QLIST_FOREACH_SAFE_RCU(cb, &plugin.cb_lists[ev], entry, next) {
|
||||
plugin_unregister_cb__locked(cb->ctx, ev);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user