On Mon, 07 Jan 2013 15:20:17 +0100 Andreas Färber <[email protected]> wrote:
> Am 17.12.2012 17:00, schrieb Christian Borntraeger: > > 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 <[email protected]> > > --- > > 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) { > > Ack for this check... > > > + qerror_report(QERR_INVALID_PARAMETER_VALUE, "driver", "a driver > > name"); > > + error_printf_unless_qmp("Try with argument 'help' for a list.\n"); > > ...but I'm not sure if this error reporting with QERR_... is still in > the desired form, cc'ing Luiz. The device_add command hasn't been converted to the qapi yet, so it's fine to use qerror_report(). However, I'd drop the error_printf_unless_qmp() call, as this has the potential of making the conversion harder. > > Andreas > > > + return NULL; > > + } > > > > /* find bus */ > > path = qemu_opt_get(opts, "bus"); >
