From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1MiF5t-0004x1-8E for qemu-devel@nongnu.org; Mon, 31 Aug 2009 18:11:21 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1MiF5o-0004qs-Ah for qemu-devel@nongnu.org; Mon, 31 Aug 2009 18:11:20 -0400 Received: from [199.232.76.173] (port=51874 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1MiF5n-0004qO-V2 for qemu-devel@nongnu.org; Mon, 31 Aug 2009 18:11:15 -0400 Received: from mx20.gnu.org ([199.232.41.8]:41107) by monty-python.gnu.org with esmtps (TLS-1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.60) (envelope-from ) id 1MiF5n-0003PH-Iv for qemu-devel@nongnu.org; Mon, 31 Aug 2009 18:11:15 -0400 Received: from mx1.redhat.com ([209.132.183.28]) by mx20.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1MiF5l-0007ka-Qv for qemu-devel@nongnu.org; Mon, 31 Aug 2009 18:11:14 -0400 From: Juan Quintela In-Reply-To: <20090831160020.3799813c@doriath> (Luiz Capitulino's message of "Mon, 31 Aug 2009 16:00:20 -0300") References: <20090831160020.3799813c@doriath> Date: Tue, 01 Sep 2009 00:08:43 +0200 Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Subject: [Qemu-devel] Re: [PATCH 3/3] savevm: Convert loadvm handlers list to LIST List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Luiz Capitulino Cc: aliguori@us.ibm.com, qemu-devel@nongnu.org Luiz Capitulino wrote: > On Fri, 28 Aug 2009 22:31:57 +0200 > Juan Quintela wrote: > >> >> Signed-off-by: Juan Quintela >> --- >> savevm.c | 20 +++++++++++--------- >> 1 files changed, 11 insertions(+), 9 deletions(-) >> >> diff --git a/savevm.c b/savevm.c >> index baef277..9836c60 100644 >> --- a/savevm.c >> +++ b/savevm.c >> @@ -1260,10 +1260,10 @@ static SaveStateEntry *find_se(const char *idstr, int instance_id) >> } >> >> typedef struct LoadStateEntry { >> + LIST_ENTRY(LoadStateEntry) entry; >> SaveStateEntry *se; >> int section_id; >> int version_id; >> - struct LoadStateEntry *next; >> } LoadStateEntry; >> >> static int qemu_loadvm_state_v2(QEMUFile *f) >> @@ -1309,7 +1309,8 @@ static int qemu_loadvm_state_v2(QEMUFile *f) >> >> int qemu_loadvm_state(QEMUFile *f) >> { >> - LoadStateEntry *first_le = NULL; >> + LIST_HEAD(, LoadStateEntry) loadvm_handlers; > > You're missing the initialization here, spot this while > testing staging. I looked at aio.c and guess what :) No LIST_INIT() either. My understanding is that it is not needed (but it is better to add it, just in case the implementation change). #define LIST_HEAD_INITIALIZER(head) \ { NULL } #define LIST_INIT(head) do { \ (head)->lh_first = NULL; \ } while (/*CONSTCOND*/0) This should be what it does without puting it. Perhaps we should "correct" also the other users? Later, Juan.