pci: Don't register a specialized 'config_write' if default behavior is intended
Few devices have their specialized 'config_write' methods which simply call 'pci_default_write_config' followed by a 'msix_write_config' or 'msi_write_config' calls, using exact same arguments. This is unnecessary as 'pci_default_write_config' already invokes 'msi_write_config' and 'msix_write_config'. Also, since 'pci_default_write_config' is the default 'config_write' handler, we can simply avoid the registration of these specialized versions. Cc: Leonid Shatz <leonid.shatz@ravellosystems.com> Signed-off-by: Shmulik Ladkani <shmulik.ladkani@ravellosystems.com> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
This commit is contained in:
parent
5ba03e2dd7
commit
74de5504fd
@ -698,7 +698,6 @@ static void ivshmem_write_config(PCIDevice *pci_dev, uint32_t address,
|
||||
uint32_t val, int len)
|
||||
{
|
||||
pci_default_write_config(pci_dev, address, val, len);
|
||||
msix_write_config(pci_dev, address, val, len);
|
||||
}
|
||||
|
||||
static int pci_ivshmem_init(PCIDevice *dev)
|
||||
|
@ -2481,14 +2481,6 @@ static const VMStateDescription vmstate_vmxnet3 = {
|
||||
}
|
||||
};
|
||||
|
||||
static void
|
||||
vmxnet3_write_config(PCIDevice *pci_dev, uint32_t addr, uint32_t val, int len)
|
||||
{
|
||||
pci_default_write_config(pci_dev, addr, val, len);
|
||||
msix_write_config(pci_dev, addr, val, len);
|
||||
msi_write_config(pci_dev, addr, val, len);
|
||||
}
|
||||
|
||||
static Property vmxnet3_properties[] = {
|
||||
DEFINE_NIC_PROPERTIES(VMXNET3State, conf),
|
||||
DEFINE_PROP_END_OF_LIST(),
|
||||
@ -2507,7 +2499,6 @@ static void vmxnet3_class_init(ObjectClass *class, void *data)
|
||||
c->class_id = PCI_CLASS_NETWORK_ETHERNET;
|
||||
c->subsystem_vendor_id = PCI_VENDOR_ID_VMWARE;
|
||||
c->subsystem_id = PCI_DEVICE_ID_VMWARE_VMXNET3;
|
||||
c->config_write = vmxnet3_write_config,
|
||||
dc->desc = "VMWare Paravirtualized Ethernet v3";
|
||||
dc->reset = vmxnet3_qdev_reset;
|
||||
dc->vmsd = &vmstate_vmxnet3;
|
||||
|
@ -2407,13 +2407,6 @@ static void megasas_scsi_realize(PCIDevice *dev, Error **errp)
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
megasas_write_config(PCIDevice *pci, uint32_t addr, uint32_t val, int len)
|
||||
{
|
||||
pci_default_write_config(pci, addr, val, len);
|
||||
msi_write_config(pci, addr, val, len);
|
||||
}
|
||||
|
||||
static Property megasas_properties_gen1[] = {
|
||||
DEFINE_PROP_UINT32("max_sge", MegasasState, fw_sge,
|
||||
MEGASAS_DEFAULT_SGE),
|
||||
@ -2516,7 +2509,6 @@ static void megasas_class_init(ObjectClass *oc, void *data)
|
||||
dc->vmsd = info->vmsd;
|
||||
set_bit(DEVICE_CATEGORY_STORAGE, dc->categories);
|
||||
dc->desc = info->desc;
|
||||
pc->config_write = megasas_write_config;
|
||||
}
|
||||
|
||||
static const TypeInfo megasas_info = {
|
||||
|
@ -1174,13 +1174,6 @@ static const VMStateDescription vmstate_pvscsi = {
|
||||
}
|
||||
};
|
||||
|
||||
static void
|
||||
pvscsi_write_config(PCIDevice *pci, uint32_t addr, uint32_t val, int len)
|
||||
{
|
||||
pci_default_write_config(pci, addr, val, len);
|
||||
msi_write_config(pci, addr, val, len);
|
||||
}
|
||||
|
||||
static Property pvscsi_properties[] = {
|
||||
DEFINE_PROP_UINT8("use_msg", PVSCSIState, use_msg, 1),
|
||||
DEFINE_PROP_END_OF_LIST(),
|
||||
@ -1202,7 +1195,6 @@ static void pvscsi_class_init(ObjectClass *klass, void *data)
|
||||
dc->vmsd = &vmstate_pvscsi;
|
||||
dc->props = pvscsi_properties;
|
||||
set_bit(DEVICE_CATEGORY_STORAGE, dc->categories);
|
||||
k->config_write = pvscsi_write_config;
|
||||
hc->unplug = pvscsi_hot_unplug;
|
||||
hc->plug = pvscsi_hotplug;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user