[Qemu-devel] [RFC 0/7] pci: Type-safety and phb->bus initialization cleanup

Eduardo Habkost posted 7 patches 7 years ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20170417215916.12431-1-ehabkost@redhat.com
Test checkpatch passed
Test docker passed
Test s390x passed
include/hw/pci/pci.h                | 17 ++++++++--------
hw/alpha/typhoon.c                  | 10 +++++-----
hw/mips/gt64xxx_pci.c               |  9 +++------
hw/pci-bridge/pci_expander_bridge.c | 15 +++++++-------
hw/pci-host/apb.c                   |  7 ++-----
hw/pci-host/bonito.c                |  7 +++----
hw/pci-host/gpex.c                  |  5 ++---
hw/pci-host/grackle.c               |  9 ++-------
hw/pci-host/piix.c                  |  3 +--
hw/pci-host/ppce500.c               |  8 ++++----
hw/pci-host/prep.c                  |  4 +---
hw/pci-host/q35.c                   |  6 +++---
hw/pci-host/uninorth.c              | 18 ++++++-----------
hw/pci-host/versatile.c             |  3 +--
hw/pci-host/xilinx-pcie.c           |  6 +++---
hw/pci/pci.c                        | 40 ++++++++++++++++++-------------------
hw/ppc/ppc4xx_pci.c                 |  8 ++++----
hw/ppc/spapr_pci.c                  | 10 +++++-----
hw/s390x/s390-pci-bus.c             | 10 +++++-----
hw/sh4/sh_pci.c                     |  9 +++------
20 files changed, 89 insertions(+), 115 deletions(-)
[Qemu-devel] [RFC 0/7] pci: Type-safety and phb->bus initialization cleanup
Posted by Eduardo Habkost 7 years ago
I've noticed that pci_bus_new*() and pci_register_bus() require
'parent' to be a PCI_HOST_BRIDGE object, but this is not clear
from the function signatures.

This series implements two changes in the PCI code:

1) Replace DeviceState with PCIHostState on functions that
   already require a PCI_HOST_BRIDGE argument. Makes the
   functions harder to misuse.
2) Move PCIHostState::bus initialization inside pci_bus_new*(),
   to avoid code duplication and make sure the field will be
   always initialized consistently.

Eduardo Habkost (7):
  pci: Change pci_host_bus_register() parameter to PCIHostState
  pci: Change pci_bus_init() 'parent' parameter to PCIHostState
  pci: Change pci_bus_new*() parameter to PCIHostState
  pci: Change pci_register_bus() 'parent' parameter to PCIHostState
  pci: Set phb->bus inside pci_register_bus()
  pci: Set phb->bus inside pci_bus_new()
  pci: Set phb->bus inside pci_bus_new_inplace()

 include/hw/pci/pci.h                | 17 ++++++++--------
 hw/alpha/typhoon.c                  | 10 +++++-----
 hw/mips/gt64xxx_pci.c               |  9 +++------
 hw/pci-bridge/pci_expander_bridge.c | 15 +++++++-------
 hw/pci-host/apb.c                   |  7 ++-----
 hw/pci-host/bonito.c                |  7 +++----
 hw/pci-host/gpex.c                  |  5 ++---
 hw/pci-host/grackle.c               |  9 ++-------
 hw/pci-host/piix.c                  |  3 +--
 hw/pci-host/ppce500.c               |  8 ++++----
 hw/pci-host/prep.c                  |  4 +---
 hw/pci-host/q35.c                   |  6 +++---
 hw/pci-host/uninorth.c              | 18 ++++++-----------
 hw/pci-host/versatile.c             |  3 +--
 hw/pci-host/xilinx-pcie.c           |  6 +++---
 hw/pci/pci.c                        | 40 ++++++++++++++++++-------------------
 hw/ppc/ppc4xx_pci.c                 |  8 ++++----
 hw/ppc/spapr_pci.c                  | 10 +++++-----
 hw/s390x/s390-pci-bus.c             | 10 +++++-----
 hw/sh4/sh_pci.c                     |  9 +++------
 20 files changed, 89 insertions(+), 115 deletions(-)

-- 
2.11.0.259.g40922b1