[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v4 09/11] pci: Reuse pci-bridge hotplug handler
From: |
David Gibson |
Subject: |
Re: [Qemu-devel] [PATCH v4 09/11] pci: Reuse pci-bridge hotplug handler handlers for pcie-pci-bridge |
Date: |
Thu, 13 Dec 2018 10:57:30 +1100 |
User-agent: |
Mutt/1.10.1 (2018-07-13) |
On Wed, Dec 12, 2018 at 10:16:21AM +0100, David Hildenbrand wrote:
> 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 <address@hidden>
> Reviewed-by: Igor Mammedov <address@hidden>
> Signed-off-by: David Hildenbrand <address@hidden>
Reviewed-by: David Gibson <address@hidden>
> ---
> hw/pci-bridge/pci_bridge_dev.c | 12 ++++++------
> hw/pci-bridge/pcie_pci_bridge.c | 30 ++----------------------------
> include/hw/pci/pci_bridge.h | 4 ++++
> 3 files changed, 12 insertions(+), 34 deletions(-)
>
> diff --git a/hw/pci-bridge/pci_bridge_dev.c b/hw/pci-bridge/pci_bridge_dev.c
> index e1df9a52ac..fa0be13ac4 100644
> --- a/hw/pci-bridge/pci_bridge_dev.c
> +++ b/hw/pci-bridge/pci_bridge_dev.c
> @@ -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);
> diff --git a/hw/pci-bridge/pcie_pci_bridge.c b/hw/pci-bridge/pcie_pci_bridge.c
> index c634353b06..0ffea680d5 100644
> --- a/hw/pci-bridge/pcie_pci_bridge.c
> +++ b/hw/pci-bridge/pcie_pci_bridge.c
> @@ -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 = {
> diff --git a/include/hw/pci/pci_bridge.h b/include/hw/pci/pci_bridge.h
> index cdff7edfd1..6e37c7551a 100644
> --- a/include/hw/pci/pci_bridge.h
> +++ b/include/hw/pci/pci_bridge.h
> @@ -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
--
David Gibson | I'll have my music baroque, and my code
david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_
| _way_ _around_!
http://www.ozlabs.org/~dgibson
signature.asc
Description: PGP signature
- [Qemu-devel] [PATCH v4 00/11] pci: hotplug handler reworks, David Hildenbrand, 2018/12/12
- [Qemu-devel] [PATCH v4 01/11] pci/pcie: rename hotplug handler callbacks, David Hildenbrand, 2018/12/12
- [Qemu-devel] [PATCH v4 02/11] pci/shpc: rename hotplug handler callbacks, David Hildenbrand, 2018/12/12
- [Qemu-devel] [PATCH v4 03/11] s390x/pci: rename hotplug handler callbacks, David Hildenbrand, 2018/12/12
- [Qemu-devel] [PATCH v4 04/11] pci/pcie: stop plug/unplug if the slot is locked, David Hildenbrand, 2018/12/12
- [Qemu-devel] [PATCH v4 05/11] pci/pcihp: perform check for bus capability in pre_plug handler, David Hildenbrand, 2018/12/12
- [Qemu-devel] [PATCH v4 06/11] pci/pcihp: overwrite hotplug handler recursively from the start, David Hildenbrand, 2018/12/12
- [Qemu-devel] [PATCH v4 07/11] pci/pcihp: perform unplug via the hotplug handler, David Hildenbrand, 2018/12/12
- [Qemu-devel] [PATCH v4 09/11] pci: Reuse pci-bridge hotplug handler handlers for pcie-pci-bridge, David Hildenbrand, 2018/12/12
- Re: [Qemu-devel] [PATCH v4 09/11] pci: Reuse pci-bridge hotplug handler handlers for pcie-pci-bridge,
David Gibson <=
- [Qemu-devel] [PATCH v4 08/11] pci/pcie: perform unplug via the hotplug handler, David Hildenbrand, 2018/12/12
- [Qemu-devel] [PATCH v4 10/11] pci/shpc: perform unplug via the hotplug handler, David Hildenbrand, 2018/12/12
- [Qemu-devel] [PATCH v4 11/11] spapr_pci: perform unplug via the hotplug handler, David Hildenbrand, 2018/12/12
- Re: [Qemu-devel] [PATCH v4 00/11] pci: hotplug handler reworks, David Hildenbrand, 2018/12/17