On 25.08.2017 13:46, KONRAD Frederic wrote:
> This device is private and is created once per aux-bus.
> So don't allow the user to create one from command-line.
>
> Reported-by: Thomas Huth <thuth@redhat.com>
> Signed-off-by: KONRAD Frederic <frederic.konrad@adacore.com>
> ---
> hw/misc/auxbus.c | 11 +++++++++++
> 1 file changed, 11 insertions(+)
>
> diff --git a/hw/misc/auxbus.c b/hw/misc/auxbus.c
> index 8a90ddd..1182745 100644
> --- a/hw/misc/auxbus.c
> +++ b/hw/misc/auxbus.c
> @@ -210,6 +210,16 @@ struct AUXTOI2CState {
> I2CBus *i2c_bus;
> };
>
> +static void aux_bridge_class_init(ObjectClass *oc, void *data)
> +{
> + DeviceClass *dc = DEVICE_CLASS(oc);
> +
> + /* This device is private and is created only once for each
> + * aux-bus in aux_init_bus(..). So don't allow the user to add one.
> + */
> + dc->user_creatable = false;
> +}
> +
> static void aux_bridge_init(Object *obj)
> {
> AUXTOI2CState *s = AUXTOI2C(obj);
> @@ -225,6 +235,7 @@ static inline I2CBus *aux_bridge_get_i2c_bus(AUXTOI2CState *bridge)
> static const TypeInfo aux_to_i2c_type_info = {
> .name = TYPE_AUXTOI2C,
> .parent = TYPE_DEVICE,
> + .class_init = aux_bridge_class_init,
> .instance_size = sizeof(AUXTOI2CState),
> .instance_init = aux_bridge_init
> };
>
Reviewed-by: Thomas Huth <thuth@redhat.com>