From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:41652) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YQRqG-0002vg-1G for qemu-devel@nongnu.org; Tue, 24 Feb 2015 21:36:55 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1YQRqA-0007co-Ld for qemu-devel@nongnu.org; Tue, 24 Feb 2015 21:36:47 -0500 Message-ID: <1424822666.4698.37.camel@freescale.com> From: Scott Wood Date: Tue, 24 Feb 2015 18:04:26 -0600 In-Reply-To: <87egpnz3eq.fsf@blackfin.pond.sub.org> References: <1423128889-18260-1-git-send-email-armbru@redhat.com> <1423128889-18260-2-git-send-email-armbru@redhat.com> <87egpnz3eq.fsf@blackfin.pond.sub.org> Content-Type: text/plain; charset="UTF-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH 1/3] PPC: Clean up misuse of qdev_init() in kvm-openpic creation List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Markus Armbruster Cc: Alexander Graf , qemu-ppc@nongnu.org, qemu-devel@nongnu.org, afaerber@suse.de On Wed, 2015-02-18 at 15:43 +0100, Markus Armbruster wrote: > Scott, can you review? > > Markus Armbruster writes: > > > We call ppce500_init_mpic_kvm() to create a "kvm-openpic". If it > > fails, we call ppce500_init_mpic_qemu() to fall back to plain > > "openpic". > > > > ppce500_init_mpic_kvm() uses qdev_init(). qdev_init()'s error > > handling has an unwanted side effect: it calls qerror_report_err(), > > which prints to stderr. Looks like an error, but isn't. > > > > In QMP context, it would stash the error in the monitor instead, > > making the QMP command fail. Fortunately, it's only called from board > > initialization, never in QMP context. > > > > Clean up by cutting out the qdev_init() middle-man: set property > > "realized" directly. > > > > While there, improve the error message when we can't satisfy an > > explicit user request for "kvm-openpic", and exit(1) instead of > > abort(). I'm OK with this if setting the realized property directly is considered good practice, but if we're not supposed to call qdev_init() in cases where it could legitimately fail, why is it distinct from qdev_init_nofail()? -Scott