From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:45505) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Tkd6j-0003KF-O1 for qemu-devel@nongnu.org; Mon, 17 Dec 2012 11:00:01 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Tkd6f-00012N-75 for qemu-devel@nongnu.org; Mon, 17 Dec 2012 10:59:57 -0500 Received: from e06smtp13.uk.ibm.com ([195.75.94.109]:57289) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Tkd6e-00011e-T2 for qemu-devel@nongnu.org; Mon, 17 Dec 2012 10:59:53 -0500 Received: from /spool/local by e06smtp13.uk.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Mon, 17 Dec 2012 15:59:30 -0000 Received: from d06av05.portsmouth.uk.ibm.com (d06av05.portsmouth.uk.ibm.com [9.149.37.229]) by b06cxnps4074.portsmouth.uk.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id qBHFxbTk6095336 for ; Mon, 17 Dec 2012 15:59:37 GMT Received: from d06av05.portsmouth.uk.ibm.com (loopback [127.0.0.1]) by d06av05.portsmouth.uk.ibm.com (8.14.4/8.13.1/NCO v10.0 AVout) with ESMTP id qBHFxjUm012040 for ; Mon, 17 Dec 2012 08:59:45 -0700 From: Christian Borntraeger Date: Mon, 17 Dec 2012 17:00:06 +0100 Message-Id: <1355760006-891-1-git-send-email-borntraeger@de.ibm.com> Subject: [Qemu-devel] [PATCH] qdev: obey no_user List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Anthony Liguori Cc: Christian Borntraeger , "qemu-devel@nongnu.org" since commit 18b6dade8c0799c48f5c5e124b8c407cd5e22e96 qdev: refactor device creation to allow bus_info to be set only in class A user can specify a device that is no_user. For example on my i386 box, I can add a 2nd kvmvapic device. This patch checks for no-user and rejects the device_add. Signed-off-by: Christian Borntraeger --- hw/qdev-monitor.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/hw/qdev-monitor.c b/hw/qdev-monitor.c index a1b4d6a..b2c34e7 100644 --- a/hw/qdev-monitor.c +++ b/hw/qdev-monitor.c @@ -426,6 +426,11 @@ DeviceState *qdev_device_add(QemuOpts *opts) } k = DEVICE_CLASS(obj); + if (k->no_user) { + qerror_report(QERR_INVALID_PARAMETER_VALUE, "driver", "a driver name"); + error_printf_unless_qmp("Try with argument 'help' for a list.\n"); + return NULL; + } /* find bus */ path = qemu_opt_get(opts, "bus"); -- 1.7.11.4