• M
    pci: Convert uses of pci_create() etc. with Coccinelle · 9307d06d
    Markus Armbruster 提交于
    Replace
    
        dev = pci_create(bus, type_name);
        ...
        qdev_init_nofail(dev);
    
    by
    
        dev = pci_new(type_name);
        ...
        pci_realize_and_unref(dev, bus, &error_fatal);
    
    and similarly for pci_create_multifunction().
    
    Recent commit "qdev: New qdev_new(), qdev_realize(), etc." explains
    why.
    
    Coccinelle script:
    
        @@
        expression dev, bus, expr;
        expression list args;
        @@
        -    dev = pci_create(bus, args);
        +    dev = pci_new(args);
             ... when != dev = expr
        -    qdev_init_nofail(&dev->qdev);
        +    pci_realize_and_unref(dev, bus, &error_fatal);
    
        @@
        expression dev, bus, expr;
        expression list args;
        expression d;
        @@
        -    dev = pci_create(bus, args);
        +    dev = pci_new(args);
        (
             d = &dev->qdev;
        |
             d = DEVICE(dev);
        )
             ... when != dev = expr
        -    qdev_init_nofail(d);
        +    pci_realize_and_unref(dev, bus, &error_fatal);
    
        @@
        expression dev, bus, expr;
        expression list args;
        @@
        -    dev = pci_create(bus, args);
        +    dev = pci_new(args);
             ... when != dev = expr
        -    qdev_init_nofail(DEVICE(dev));
        +    pci_realize_and_unref(dev, bus, &error_fatal);
    
        @@
        expression dev, bus, expr;
        expression list args;
        @@
        -    dev = DEVICE(pci_create(bus, args));
        +    PCIDevice *pci_dev; // TODO move
        +    pci_dev = pci_new(args);
        +    dev = DEVICE(pci_dev);
             ... when != dev = expr
        -    qdev_init_nofail(dev);
        +    pci_realize_and_unref(pci_dev, bus, &error_fatal);
    
        @@
        expression dev, bus, expr;
        expression list args;
        @@
        -    dev = pci_create_multifunction(bus, args);
        +    dev = pci_new_multifunction(args);
             ... when != dev = expr
        -    qdev_init_nofail(&dev->qdev);
        +    pci_realize_and_unref(dev, bus, &error_fatal);
    
        @@
        expression bus, expr;
        expression list args;
        identifier dev;
        @@
        -    PCIDevice *dev = pci_create_multifunction(bus, args);
        +    PCIDevice *dev = pci_new_multifunction(args);
             ... when != dev = expr
        -    qdev_init_nofail(&dev->qdev);
        +    pci_realize_and_unref(dev, bus, &error_fatal);
    
        @@
        expression dev, bus, expr;
        expression list args;
        @@
        -    dev = pci_create_multifunction(bus, args);
        +    dev = pci_new_multifunction(args);
             ... when != dev = expr
        -    qdev_init_nofail(DEVICE(dev));
        +    pci_realize_and_unref(dev, bus, &error_fatal);
    
    Missing #include "qapi/error.h" added manually, whitespace changes
    minimized manually, @pci_dev declarations moved manually.
    
    Cc: Michael S. Tsirkin <mst@redhat.com>
    Cc: Marcel Apfelbaum <marcel.apfelbaum@gmail.com>
    Signed-off-by: NMarkus Armbruster <armbru@redhat.com>
    Reviewed-by: NPaolo Bonzini <pbonzini@redhat.com>
    Message-Id: <20200610053247.1583243-16-armbru@redhat.com>
    Reviewed-by: NMichael S. Tsirkin <mst@redhat.com>
    9307d06d
pc_q35.c 19.1 KB