qemu/hw/pci
Michael S. Tsirkin d93ddfb1f8 pci: fix error message for express slots
PCI Express downstream slot has a single PCI slot
behind it, using PCI_DEVFN(PCI_SLOT(devfn), 0)
does not give you function 0 in cases such as ARI
as well as some error cases.

This is exactly what we are hitting:
   $ qemu-system-x86_64 -machine q35 -readconfig docs/q35-chipset.cfg
-monitor stdio
   (qemu) device_add e1000e,bus=ich9-pcie-port-4,addr=00
   (qemu) device_add e1000e,bus=ich9-pcie-port-4,addr=08
   Segmentation fault (core dumped)

The fix is to use the pci_get_function_0 API.

Cc: qemu-stable@nongnu.org
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Reported-by: Eduardo Habkost <ehabkost@redhat.com>
Tested-by: Cao jin <caoj.fnst@cn.fujitsu.com>
Tested-by: Eduardo Habkost <ehabkost@redhat.com>
Reviewed-by: Eduardo Habkost <ehabkost@redhat.com>
2016-12-16 01:14:38 +02:00
..
Makefile.objs pci-hotplug-old: Has been dead for five major releases, bury 2015-03-01 12:37:54 +01:00
msi.c pci: Convert msi_init() to Error and fix callers to check it 2016-07-05 13:14:41 +03:00
msix.c msix: make msix_clr_pending() visible for clients 2016-06-02 10:42:09 +08:00
pci_bridge.c Fix some typos found by codespell 2016-05-18 15:04:27 +03:00
pci_host.c pci: Clean up includes 2016-01-29 15:07:24 +00:00
pci-stub.c pci: Clean up includes 2016-01-29 15:07:24 +00:00
pci.c pci: fix error message for express slots 2016-12-16 01:14:38 +02:00
pcie_aer.c qapi: Improve use of qmp/types.h 2016-07-06 10:52:03 +02:00
pcie_host.c pci: Clean up includes 2016-01-29 15:07:24 +00:00
pcie_port.c pci: Clean up includes 2016-01-29 15:07:24 +00:00
pcie.c pcie: fix link active status bit migration 2016-07-29 00:07:08 +03:00
shpc.c include/qemu/osdep.h: Don't include qapi/error.h 2016-03-22 22:20:15 +01:00
slotid_cap.c pci: Clean up includes 2016-01-29 15:07:24 +00:00
trace-events trace-events: fix first line comment in trace-events 2016-08-12 10:36:01 +01:00