From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:59920) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZgTw6-0004m4-PL for qemu-devel@nongnu.org; Mon, 28 Sep 2015 04:37:27 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZgTw3-00041B-JW for qemu-devel@nongnu.org; Mon, 28 Sep 2015 04:37:26 -0400 References: <1443121042-3409-1-git-send-email-armbru@redhat.com> <1443121042-3409-7-git-send-email-armbru@redhat.com> <56054E5E.3090005@redhat.com> <87y4fu1t3j.fsf@blackfin.pond.sub.org> <560590A6.3030408@redhat.com> <87io6vm08l.fsf@blackfin.pond.sub.org> From: Paolo Bonzini Message-ID: <5608FC3B.7080601@redhat.com> Date: Mon, 28 Sep 2015 10:37:15 +0200 MIME-Version: 1.0 In-Reply-To: <87io6vm08l.fsf@blackfin.pond.sub.org> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH v3 6/7] qdev: Protect device-list-properties against broken devices List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Markus Armbruster , Thomas Huth Cc: Peter Maydell , ehabkost@redhat.com, Peter Crosthwaite , qemu-devel@nongnu.org, qemu-stable@nongnu.org, Christian Borntraeger , Alexander Graf , qemu-ppc@nongnu.org, Antony Pavlov , stefanha@redhat.com, Cornelia Huck , Alistair Francis , afaerber@suse.de, Li Guang , Richard Henderson On 28/09/2015 10:11, Markus Armbruster wrote: > > For most of the devices my patch marks, we have a pretty good idea on > what's wrong with them. spapr-rng is among the exceptions. You believe > it's actually "the macio object". Which one? "macio" is abstract... > > You report introspecting "spapr-rng" crashes "while trying to go through > the macio object". I wonder how omitting introspection of macio objects > (that's what marking them does to this test) could affect the object > we're going through when we crash. > >> > Or maybe we could get this also fixed? The problem could be the >> > memory_region_init(&s->bar, NULL, "macio", 0x80000) in >> > macio_instance_init() ... is this ok here? Or does this rather have to >> > go to the realize() function instead? > Hmm, does creating and destroying a macio object leave the memory region > behind? > > Paolo, is calling memory_region_init() in an instance_init() method > okay? Yes, but it has to have a non-NULL owner. The reason why this particular call has a NULL owner is that the (non-qdevified) DBDMA_init object inside it is also passing a NULL owner. DBDMA_init object is also doing a few more non-idempotent things such as a malloc, a vmstate_register and a qemu_register_reset. The full solution would be to qdev-ify DBDMA. A simpler but also valid solution would be to move DBDMA_init to macio_common_realize, in addition to setting the owner of s->bar. Paolo