pci: Reuse pci-bridge hotplug handler handlers for pcie-pci-bridge
These functions are essentially the same, we only have to use object_get_typename() for reporting errors. So let's share the implementation of hotplug handler callbacks. Suggested-by: Igor Mammedov <imammedo@redhat.com> Reviewed-by: Igor Mammedov <imammedo@redhat.com> Signed-off-by: David Hildenbrand <david@redhat.com> Reviewed-by: David Gibson <david@gibson.dropbear.id.au> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
This commit is contained in:
parent
a1952d01e7
commit
62b7656396
@ -206,27 +206,27 @@ static const VMStateDescription pci_bridge_dev_vmstate = {
|
||||
}
|
||||
};
|
||||
|
||||
static void pci_bridge_dev_plug_cb(HotplugHandler *hotplug_dev,
|
||||
DeviceState *dev, Error **errp)
|
||||
void pci_bridge_dev_plug_cb(HotplugHandler *hotplug_dev, DeviceState *dev,
|
||||
Error **errp)
|
||||
{
|
||||
PCIDevice *pci_hotplug_dev = PCI_DEVICE(hotplug_dev);
|
||||
|
||||
if (!shpc_present(pci_hotplug_dev)) {
|
||||
error_setg(errp, "standard hotplug controller has been disabled for "
|
||||
"this %s", TYPE_PCI_BRIDGE_DEV);
|
||||
"this %s", object_get_typename(OBJECT(hotplug_dev)));
|
||||
return;
|
||||
}
|
||||
shpc_device_plug_cb(hotplug_dev, dev, errp);
|
||||
}
|
||||
|
||||
static void pci_bridge_dev_unplug_request_cb(HotplugHandler *hotplug_dev,
|
||||
DeviceState *dev, Error **errp)
|
||||
void pci_bridge_dev_unplug_request_cb(HotplugHandler *hotplug_dev,
|
||||
DeviceState *dev, Error **errp)
|
||||
{
|
||||
PCIDevice *pci_hotplug_dev = PCI_DEVICE(hotplug_dev);
|
||||
|
||||
if (!shpc_present(pci_hotplug_dev)) {
|
||||
error_setg(errp, "standard hotplug controller has been disabled for "
|
||||
"this %s", TYPE_PCI_BRIDGE_DEV);
|
||||
"this %s", object_get_typename(OBJECT(hotplug_dev)));
|
||||
return;
|
||||
}
|
||||
shpc_device_unplug_request_cb(hotplug_dev, dev, errp);
|
||||
|
@ -137,32 +137,6 @@ static const VMStateDescription pcie_pci_bridge_dev_vmstate = {
|
||||
}
|
||||
};
|
||||
|
||||
static void pcie_pci_bridge_plug_cb(HotplugHandler *hotplug_dev,
|
||||
DeviceState *dev, Error **errp)
|
||||
{
|
||||
PCIDevice *pci_hotplug_dev = PCI_DEVICE(hotplug_dev);
|
||||
|
||||
if (!shpc_present(pci_hotplug_dev)) {
|
||||
error_setg(errp, "standard hotplug controller has been disabled for "
|
||||
"this %s", TYPE_PCIE_PCI_BRIDGE_DEV);
|
||||
return;
|
||||
}
|
||||
shpc_device_plug_cb(hotplug_dev, dev, errp);
|
||||
}
|
||||
|
||||
static void pcie_pci_bridge_unplug_request_cb(HotplugHandler *hotplug_dev,
|
||||
DeviceState *dev, Error **errp)
|
||||
{
|
||||
PCIDevice *pci_hotplug_dev = PCI_DEVICE(hotplug_dev);
|
||||
|
||||
if (!shpc_present(pci_hotplug_dev)) {
|
||||
error_setg(errp, "standard hotplug controller has been disabled for "
|
||||
"this %s", TYPE_PCIE_PCI_BRIDGE_DEV);
|
||||
return;
|
||||
}
|
||||
shpc_device_unplug_request_cb(hotplug_dev, dev, errp);
|
||||
}
|
||||
|
||||
static void pcie_pci_bridge_class_init(ObjectClass *klass, void *data)
|
||||
{
|
||||
PCIDeviceClass *k = PCI_DEVICE_CLASS(klass);
|
||||
@ -179,8 +153,8 @@ static void pcie_pci_bridge_class_init(ObjectClass *klass, void *data)
|
||||
dc->props = pcie_pci_bridge_dev_properties;
|
||||
dc->reset = &pcie_pci_bridge_reset;
|
||||
set_bit(DEVICE_CATEGORY_BRIDGE, dc->categories);
|
||||
hc->plug = pcie_pci_bridge_plug_cb;
|
||||
hc->unplug_request = pcie_pci_bridge_unplug_request_cb;
|
||||
hc->plug = pci_bridge_dev_plug_cb;
|
||||
hc->unplug_request = pci_bridge_dev_unplug_request_cb;
|
||||
}
|
||||
|
||||
static const TypeInfo pcie_pci_bridge_info = {
|
||||
|
@ -99,6 +99,10 @@ void pci_bridge_reset(DeviceState *qdev);
|
||||
void pci_bridge_initfn(PCIDevice *pci_dev, const char *typename);
|
||||
void pci_bridge_exitfn(PCIDevice *pci_dev);
|
||||
|
||||
void pci_bridge_dev_plug_cb(HotplugHandler *hotplug_dev, DeviceState *dev,
|
||||
Error **errp);
|
||||
void pci_bridge_dev_unplug_request_cb(HotplugHandler *hotplug_dev,
|
||||
DeviceState *dev, Error **errp);
|
||||
|
||||
/*
|
||||
* before qdev initialization(qdev_init()), this function sets bus_name and
|
||||
|
Loading…
Reference in New Issue
Block a user