Skip to content

Commit

Permalink
hw/pci/pci: Remove multifunction parameter from pci_create_simple_mul…
Browse files Browse the repository at this point in the history
…tifunction()

There is also pci_create_simple() which creates non-multifunction PCI
devices. Accordingly the parameter is always set to true when a multi
function PCI device is to be created.

The reason for the parameter's existence seems to be that it is used in the
internal PCI code as well which is the only location where it gets set to
false. This one usage can be replaced by trivial code.

Remove this redundant, error-prone parameter.

Signed-off-by: Bernhard Beschow <shentey@gmail.com>
Message-Id: <20230304114043.121024-5-shentey@gmail.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
  • Loading branch information
shentok authored and mstsirkin committed Jul 10, 2023
1 parent c589f7c commit e052944
Show file tree
Hide file tree
Showing 8 changed files with 11 additions and 13 deletions.
3 changes: 1 addition & 2 deletions hw/i386/pc_piix.c
Original file line number Diff line number Diff line change
Expand Up @@ -263,8 +263,7 @@ static void pc_init1(MachineState *machine,
PIIX3State *piix3;
PCIDevice *pci_dev;

pci_dev = pci_create_simple_multifunction(pci_bus, -1, true,
TYPE_PIIX3_DEVICE);
pci_dev = pci_create_simple_multifunction(pci_bus, -1, TYPE_PIIX3_DEVICE);

if (xen_enabled()) {
pci_device_set_intx_routing_notifier(
Expand Down
4 changes: 2 additions & 2 deletions hw/i386/pc_q35.c
Original file line number Diff line number Diff line change
Expand Up @@ -304,7 +304,7 @@ static void pc_q35_init(MachineState *machine)
ahci = pci_create_simple_multifunction(host_bus,
PCI_DEVFN(ICH9_SATA1_DEV,
ICH9_SATA1_FUNC),
true, "ich9-ahci");
"ich9-ahci");
idebus[0] = qdev_get_child_bus(&ahci->qdev, "ide.0");
idebus[1] = qdev_get_child_bus(&ahci->qdev, "ide.1");
g_assert(MAX_SATA_PORTS == ahci_get_num_ports(ahci));
Expand All @@ -326,7 +326,7 @@ static void pc_q35_init(MachineState *machine)
smb = pci_create_simple_multifunction(host_bus,
PCI_DEVFN(ICH9_SMB_DEV,
ICH9_SMB_FUNC),
true, TYPE_ICH9_SMB_DEVICE);
TYPE_ICH9_SMB_DEVICE);
pcms->smbus = I2C_BUS(qdev_get_child_bus(DEVICE(smb), "i2c"));

smbus_eeprom_init(pcms->smbus, 8, NULL, 0);
Expand Down
3 changes: 1 addition & 2 deletions hw/mips/boston.c
Original file line number Diff line number Diff line change
Expand Up @@ -770,8 +770,7 @@ static void boston_mach_init(MachineState *machine)
boston_lcd_event, NULL, s, NULL, true);

ahci = pci_create_simple_multifunction(&PCI_BRIDGE(&pcie2->root)->sec_bus,
PCI_DEVFN(0, 0),
true, TYPE_ICH9_AHCI);
PCI_DEVFN(0, 0), TYPE_ICH9_AHCI);
g_assert(ARRAY_SIZE(hd) == ahci_get_num_ports(ahci));
ide_drive_get(hd, ahci_get_num_ports(ahci));
ahci_ide_create_devs(ahci, hd);
Expand Down
2 changes: 1 addition & 1 deletion hw/mips/fuloong2e.c
Original file line number Diff line number Diff line change
Expand Up @@ -297,7 +297,7 @@ static void mips_fuloong2e_init(MachineState *machine)
/* South bridge -> IP5 */
pci_dev = pci_create_simple_multifunction(pci_bus,
PCI_DEVFN(FULOONG2E_VIA_SLOT, 0),
true, TYPE_VT82C686B_ISA);
TYPE_VT82C686B_ISA);
object_property_add_alias(OBJECT(machine), "rtc-time",
object_resolve_path_component(OBJECT(pci_dev),
"rtc"),
Expand Down
2 changes: 1 addition & 1 deletion hw/mips/malta.c
Original file line number Diff line number Diff line change
Expand Up @@ -1251,7 +1251,7 @@ void mips_malta_init(MachineState *machine)
pci_bus_map_irqs(pci_bus, malta_pci_slot_get_pirq);

/* Southbridge */
piix4 = pci_create_simple_multifunction(pci_bus, PIIX4_PCI_DEVFN, true,
piix4 = pci_create_simple_multifunction(pci_bus, PIIX4_PCI_DEVFN,
TYPE_PIIX4_PCI_DEVICE);
isa_bus = ISA_BUS(qdev_get_child_bus(DEVICE(piix4), "isa.0"));

Expand Down
7 changes: 4 additions & 3 deletions hw/pci/pci.c
Original file line number Diff line number Diff line change
Expand Up @@ -2186,17 +2186,18 @@ bool pci_realize_and_unref(PCIDevice *dev, PCIBus *bus, Error **errp)
}

PCIDevice *pci_create_simple_multifunction(PCIBus *bus, int devfn,
bool multifunction,
const char *name)
{
PCIDevice *dev = pci_new_multifunction(devfn, multifunction, name);
PCIDevice *dev = pci_new_multifunction(devfn, true, name);
pci_realize_and_unref(dev, bus, &error_fatal);
return dev;
}

PCIDevice *pci_create_simple(PCIBus *bus, int devfn, const char *name)
{
return pci_create_simple_multifunction(bus, devfn, false, name);
PCIDevice *dev = pci_new(devfn, name);
pci_realize_and_unref(dev, bus, &error_fatal);
return dev;
}

static uint8_t pci_find_space(PCIDevice *pdev, uint8_t size)
Expand Down
2 changes: 1 addition & 1 deletion hw/ppc/pegasos2.c
Original file line number Diff line number Diff line change
Expand Up @@ -180,7 +180,7 @@ static void pegasos2_init(MachineState *machine)

/* VIA VT8231 South Bridge (multifunction PCI device) */
via = OBJECT(pci_create_simple_multifunction(pci_bus, PCI_DEVFN(12, 0),
true, TYPE_VT8231_ISA));
TYPE_VT8231_ISA));
for (i = 0; i < PCI_NUM_PINS; i++) {
pm->via_pirq[i] = qdev_get_gpio_in_named(DEVICE(via), "pirq", i);
}
Expand Down
1 change: 0 additions & 1 deletion include/hw/pci/pci.h
Original file line number Diff line number Diff line change
Expand Up @@ -583,7 +583,6 @@ PCIDevice *pci_new(int devfn, const char *name);
bool pci_realize_and_unref(PCIDevice *dev, PCIBus *bus, Error **errp);

PCIDevice *pci_create_simple_multifunction(PCIBus *bus, int devfn,
bool multifunction,
const char *name);
PCIDevice *pci_create_simple(PCIBus *bus, int devfn, const char *name);

Expand Down

0 comments on commit e052944

Please sign in to comment.