Christian Borntraeger <[email protected]> writes:

> 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]>

I specifically broke this when QOM was introduced because no_user
precludes a management tool from constructing a machine directlt.

The real problem you're trying to solve is that it's an error to have
two kvmvapic devices, not that users shouldn't be allowed to create them
via -device.

Regards,

Anthony Liguori

> ---
>  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


Reply via email to