[PATCH v2 00/13] Q35 PCI host fixes and QOM cleanup

Bernhard Beschow posted 13 patches 1 year, 1 month ago
include/hw/pci-host/q35.h |  17 +-
include/hw/pci/pci_host.h |   2 +
hw/i386/pc_q35.c          |  33 ++--
hw/pci-host/q35.c         | 317 ++++++++++++++++++--------------------
hw/pci/pci_host.c         |   2 +-
5 files changed, 181 insertions(+), 190 deletions(-)
[PATCH v2 00/13] Q35 PCI host fixes and QOM cleanup
Posted by Bernhard Beschow 1 year, 1 month ago
This series mostly cleans up QOM-related initialization code. It also performs
some modernization and fixing.

The first patch originates from "PC and ICH9 clanups" series [1] which has been
dropped in v3 in favor of another series [2]. Review comments in [2] suggest it
needs more work, so bring the patch back here.

Patch 2 fixes a clangd warning and patch 3 modernizes usage of the memory API.

Patches 4-9 clean up initialization code.

The last four patches also clean up initialization code with the last patch
doing the actual cleanup.

Testing done:
* `make check`
* `make check-avocado`
* `qemu-system-x86_64 -M q35 -m 2G -cdrom \
     manjaro-kde-21.3.2-220704-linux515.iso`

v2 (addresses Michael's comments):
- Patch "hw/pci-host/q35: Fix double, contradicting .endianness assignment"
  - Fix Fixes tag
  - Switch to native endian
  - Add clang warning
- Patch "Use memory_region_set_address() also for tseg_blackhole"
  - Rephrase commit message to avoid pseudo "Ammends" tag
- Introduce PCI_HOST_BYPASS_IOMMU macro to avoid duplicating the property name
- Patch "hw/pci-host/q35: Initialize properties just once"
  - Mention manual reassignment in commit message as the problem being fixed

Based-on: <20230213162004.2797-1-shentey@gmail.com>
         "[PATCH v4 0/9] PC cleanups"

[1] https://lore.kernel.org/qemu-devel/20230131115326.12454-1-shentey@gmail.com/
[2] https://lore.kernel.org/qemu-devel/20230203180914.49112-1-philmd@linaro.org/

Bernhard Beschow (13):
  hw/i386/pc_q35: Resolve redundant q35_host variable
  hw/pci-host/q35: Fix double, contradicting .endianness assignment
  hw/pci-host/q35: Use memory_region_set_address() also for
    tseg_blackhole
  hw/pci-host/q35: Initialize PCMachineState::bus in board code
  hw/pci/pci_host: Introduce PCI_HOST_BYPASS_IOMMU macro
  hw/pci-host/q35: Initialize "bypass-iommu" property from board code
  hw/pci-host/q35: Initialize properties just once
  hw/pci-host/q35: Initialize PCI hole boundaries just once
  hw/pci-host/q35: Turn PCI hole properties into class properties
  hw/pci-host/q35: Rename local variable to more idiomatic "phb"
  hw/pci-host/q35: Propagate to errp rather than doing error_fatal
  hw/pci-host/q35: Merge mch_realize() into q35_host_realize()
  hw/pci-host/q35: Move MemoryRegion pointers to host device

 include/hw/pci-host/q35.h |  17 +-
 include/hw/pci/pci_host.h |   2 +
 hw/i386/pc_q35.c          |  33 ++--
 hw/pci-host/q35.c         | 317 ++++++++++++++++++--------------------
 hw/pci/pci_host.c         |   2 +-
 5 files changed, 181 insertions(+), 190 deletions(-)

-- 
2.39.2