From f9a8b5530d438f836f9697639814f585aaec554d Mon Sep 17 00:00:00 2001 From: Eduardo Habkost Date: Thu, 28 Jan 2016 12:22:35 -0200 Subject: qdev: Use GList for global properties If the same GlobalProperty struct is registered twice, the list entry gets corrupted, making tqe_next points to itself, and qdev_prop_set_globals() gets stuck in a loop. The bug can be easily reproduced by running: $ qemu-system-x86_64 -rtc-td-hack -rtc-td-hack Change global_props to use GList instead of queue.h, making the code simpler and able to deal with properties being registered twice. Reviewed-by: Michael S. Tsirkin Signed-off-by: Eduardo Habkost --- include/hw/qdev-core.h | 1 - 1 file changed, 1 deletion(-) (limited to 'include/hw/qdev-core.h') diff --git a/include/hw/qdev-core.h b/include/hw/qdev-core.h index 1ce02b20da..24aa0a7949 100644 --- a/include/hw/qdev-core.h +++ b/include/hw/qdev-core.h @@ -266,7 +266,6 @@ typedef struct GlobalProperty { const char *value; bool user_provided; bool used; - QTAILQ_ENTRY(GlobalProperty) next; } GlobalProperty; /*** Board API. This should go away once we have a machine config file. ***/ -- cgit v1.2.3