f021f4e9d2
pci_bus_irqs() coupled together the assignment of pci_set_irq_fn and pci_map_irq_fn to a PCI bus. This coupling gets in the way when the pci_map_irq_fn is board-specific while the pci_set_irq_fn is device- specific. For example, both of QEMU's PIIX south bridge models have different pci_map_irq_fn implementations which are board-specific rather than device-specific. These implementations should therefore reside in board code. The pci_set_irq_fn's, however, should stay in the device models because they access memory internal to the model. Factoring out pci_bus_map_irqs() from pci_bus_irqs() allows the assignments to be decoupled, resolving the problem described above. Note also how pci_vpb_realize() which gets touched in this commit assigns different pci_map_irq_fn's depending on the board. Signed-off-by: Bernhard Beschow <shentey@gmail.com> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org> Message-Id: <20230109172347.1830-5-shentey@gmail.com> [PMD: Factor out in vfu_object_set_bus_irq()] Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> |
||
---|---|---|
.. | ||
bonito.c | ||
designware.c | ||
dino.c | ||
gpex-acpi.c | ||
gpex.c | ||
grackle.c | ||
gt64120.c | ||
i440fx.c | ||
Kconfig | ||
meson.build | ||
mv643xx.h | ||
mv64361.c | ||
pam.c | ||
pnv_phb3_msi.c | ||
pnv_phb3_pbcq.c | ||
pnv_phb3.c | ||
pnv_phb4_pec.c | ||
pnv_phb4.c | ||
pnv_phb.c | ||
pnv_phb.h | ||
ppce500.c | ||
q35.c | ||
raven.c | ||
remote.c | ||
sabre.c | ||
sh_pci.c | ||
trace-events | ||
trace.h | ||
uninorth.c | ||
versatile.c | ||
xen_igd_pt.c | ||
xilinx-pcie.c |