Skip to content
  • Markus Armbruster's avatar
    99ba777e
    qdev: Convert uses of qdev_set_parent_bus() with Coccinelle · 99ba777e
    Markus Armbruster authored
    
    
    In addition to the qdev_create() patterns converted so far, we have a
    qdev_set_parent_bus() pattern.  Mostly when we embed a device in a
    parent device rather than allocating it on the heap.
    
    This pattern also puts devices in the dangerous "no QOM parent, but
    plugged into bus" state I explained in recent commit "qdev: New
    qdev_new(), qdev_realize(), etc."
    
    Apply same solution: convert to qdev_realize().  Coccinelle script:
    
        @@
        expression dev, bus, errp;
        symbol true;
        @@
        -    qdev_set_parent_bus(DEVICE(dev), bus);
             ...
        -    object_property_set_bool(OBJECT(dev), true, "realized", errp);
        +    qdev_realize(DEVICE(dev), bus, errp);
    
        @ depends on !(file in "qdev-monitor.c") && !(file in "hw/core/qdev.c")@
        expression dev, bus, errp;
        symbol true;
        @@
        -    qdev_set_parent_bus(dev, bus);
             ...
        -    object_property_set_bool(OBJECT(dev), true, "realized", errp);
        +    qdev_realize(dev, bus, errp);
    
        @@
        expression dev, bus;
        symbol true;
        @@
        -    qdev_set_parent_bus(DEVICE(dev), bus);
             ...
        -    qdev_init_nofail(DEVICE(dev));
        +    qdev_realize(DEVICE(dev), bus, &error_fatal);
    
    Unconverted uses of qdev_set_parent_bus() remain.  They'll be
    converted later in this series.
    
    Signed-off-by: default avatarMarkus Armbruster <armbru@redhat.com>
    Reviewed-by: default avatarPhilippe Mathieu-Daudé <philmd@redhat.com>
    Reviewed-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
    Message-Id: <20200610053247.1583243-12-armbru@redhat.com>
    [Also convert new hw/virtio/vhost-user-vsock-pci.c]
    99ba777e
    qdev: Convert uses of qdev_set_parent_bus() with Coccinelle
    Markus Armbruster authored
    
    
    In addition to the qdev_create() patterns converted so far, we have a
    qdev_set_parent_bus() pattern.  Mostly when we embed a device in a
    parent device rather than allocating it on the heap.
    
    This pattern also puts devices in the dangerous "no QOM parent, but
    plugged into bus" state I explained in recent commit "qdev: New
    qdev_new(), qdev_realize(), etc."
    
    Apply same solution: convert to qdev_realize().  Coccinelle script:
    
        @@
        expression dev, bus, errp;
        symbol true;
        @@
        -    qdev_set_parent_bus(DEVICE(dev), bus);
             ...
        -    object_property_set_bool(OBJECT(dev), true, "realized", errp);
        +    qdev_realize(DEVICE(dev), bus, errp);
    
        @ depends on !(file in "qdev-monitor.c") && !(file in "hw/core/qdev.c")@
        expression dev, bus, errp;
        symbol true;
        @@
        -    qdev_set_parent_bus(dev, bus);
             ...
        -    object_property_set_bool(OBJECT(dev), true, "realized", errp);
        +    qdev_realize(dev, bus, errp);
    
        @@
        expression dev, bus;
        symbol true;
        @@
        -    qdev_set_parent_bus(DEVICE(dev), bus);
             ...
        -    qdev_init_nofail(DEVICE(dev));
        +    qdev_realize(DEVICE(dev), bus, &error_fatal);
    
    Unconverted uses of qdev_set_parent_bus() remain.  They'll be
    converted later in this series.
    
    Signed-off-by: default avatarMarkus Armbruster <armbru@redhat.com>
    Reviewed-by: default avatarPhilippe Mathieu-Daudé <philmd@redhat.com>
    Reviewed-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
    Message-Id: <20200610053247.1583243-12-armbru@redhat.com>
    [Also convert new hw/virtio/vhost-user-vsock-pci.c]
Loading