Maing changes v4 -> v5: - split up/reorder patches for bisectability and testability - stype fixes.
patch description: When pci devices are populated as multi-function, OS can fail to probe function > 0. It's because multi function bit of header type register in configuration space isn't set, so OS probes only function 0 skipping function > 0 as optimization. This patch set make qemu set multi function bit when function > 0 is populated. Changes v3 -> v4: - introduced multifunction property and add validation check to catch user operation errors. - some more clean up. Isaku Yamahata (9): pci: use PCI_DEVFN() where appropriate. pci: insert assert that auto-assigned-address function is single function device. pci: don't overwrite multi functio bit in pci header type. pci: remove PCIDeviceInfo::header_type qdev: implement qdev_prop_set_bit(). pci: introduce multifunction property. pci: set multifunction property for normal device. pci_bridge: make pci bridge aware of pci multi function bit. pci: set PCI multi-function bit appropriately. hw/ac97.c | 1 - hw/acpi_piix4.c | 1 - hw/apb_pci.c | 11 ++---- hw/dec_pci.c | 4 +- hw/grackle_pci.c | 1 - hw/gt64xxx.c | 2 +- hw/ide/cmd646.c | 1 - hw/ide/piix.c | 1 - hw/macio.c | 1 - hw/ne2000.c | 1 - hw/openpic.c | 1 - hw/pci.c | 97 +++++++++++++++++++++++++++++++++++++++++++------- hw/pci.h | 21 +++++++++-- hw/pcnet.c | 1 - hw/piix4.c | 4 +-- hw/piix_pci.c | 5 +-- hw/ppce500_pci.c | 3 +- hw/prep_pci.c | 1 - hw/qdev-properties.c | 5 +++ hw/qdev.h | 1 + hw/rtl8139.c | 1 - hw/sun4u.c | 1 - hw/unin_pci.c | 16 +++----- hw/usb-uhci.c | 1 - hw/versatile_pci.c | 2 +- hw/vga-pci.c | 1 - hw/virtio-pci.c | 1 - hw/vmware_vga.c | 1 - hw/wdt_i6300esb.c | 1 - 29 files changed, 125 insertions(+), 63 deletions(-)