From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:42826) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Tdgc8-0007US-U2 for qemu-devel@nongnu.org; Wed, 28 Nov 2012 07:19:46 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Tdgc7-0007Lp-O2 for qemu-devel@nongnu.org; Wed, 28 Nov 2012 07:19:40 -0500 Received: from cantor2.suse.de ([195.135.220.15]:40217 helo=mx2.suse.de) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Tdgc7-0007Lj-EO for qemu-devel@nongnu.org; Wed, 28 Nov 2012 07:19:39 -0500 Message-ID: <50B60158.2000205@suse.de> Date: Wed, 28 Nov 2012 13:19:36 +0100 From: =?ISO-8859-1?Q?Andreas_F=E4rber?= MIME-Version: 1.0 References: <1354092873-11954-1-git-send-email-alevy@redhat.com> <20121128095456.1d032f4b@doriath.home> <50B5FD52.40209@redhat.com> <20121128101413.3530cf08@doriath.home> In-Reply-To: <20121128101413.3530cf08@doriath.home> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Subject: Re: [Qemu-devel] [PATCH] hw/qdev-monitor: report error for -device List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Luiz Capitulino Cc: Paolo Bonzini , Alon Levy , qemu-devel@nongnu.org, armbru@redhat.com Am 28.11.2012 13:14, schrieb Luiz Capitulino: > On Wed, 28 Nov 2012 13:02:26 +0100 > Paolo Bonzini wrote: >=20 >> Il 28/11/2012 12:54, Luiz Capitulino ha scritto: >>> On Wed, 28 Nov 2012 10:54:33 +0200 >>> Alon Levy wrote: >>> >>>> Instead of aborting immediately after at DEVICE_CLASS(obj) >>>> >>>> Signed-off-by: Alon Levy >>>> --- >>>> hw/qdev-monitor.c | 5 +++++ >>>> 1 file changed, 5 insertions(+) >>>> >>>> diff --git a/hw/qdev-monitor.c b/hw/qdev-monitor.c >>>> index 479eecd..3b70cdb 100644 >>>> --- a/hw/qdev-monitor.c >>>> +++ b/hw/qdev-monitor.c >>>> @@ -426,6 +426,11 @@ DeviceState *qdev_device_add(QemuOpts *opts) >>>> return NULL; >>>> } >>>> =20 >>>> + if (!object_class_dynamic_cast(obj, "device")) { >>>> + qerror_report(QERR_INVALID_PARAMETER_TYPE, "driver", "devic= e type"); >>>> + return NULL; >>>> + } >>> >>> Gives me the impression that something is wrong before this, but it's >>> better to ask a QOM guy (CC'ing them). >> >> I would reuse the same error message as for "if (!obj)", and also use >> TYPE_DEVICE instead of the hardcoded string, but the patch is ok. >=20 > It's a bit weird to me that you check for a condition and right next > you also assert it (it's what DEVICE_CLASS() will do). But I'm not fami= liar > with QOM, so I'll just trust you. We could just as well do: k =3D object_class_dynamic_cast(obj, TYPE_DEVICE); if (k =3D=3D NULL) { // do the error reporting return ...; } /* find bus */ ... Andreas --=20 SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 N=FCrnberg, Germany GF: Jeff Hawn, Jennifer Guild, Felix Imend=F6rffer; HRB 16746 AG N=FCrnbe= rg