qemu-cr16/docs
Damien Bergamini 2e54e5fda7 pcie_sriov: Fix broken MMIO accesses from SR-IOV VFs
Starting with commit cab1398a60, SR-IOV VFs are realized as soon as
pcie_sriov_pf_init() is called.  Because pcie_sriov_pf_init() must be
called before pcie_sriov_pf_init_vf_bar(), the VF BARs types won't be
known when the VF realize function calls pcie_sriov_vf_register_bar().

This breaks the memory regions of the VFs (for instance with igbvf):

$ lspci
...
    Region 0: Memory at 281a00000 (64-bit, prefetchable) [virtual] [size=16K]
    Region 3: Memory at 281a20000 (64-bit, prefetchable) [virtual] [size=16K]

$ info mtree
...
address-space: pci_bridge_pci_mem
  0000000000000000-ffffffffffffffff (prio 0, i/o): pci_bridge_pci
    0000000081a00000-0000000081a03fff (prio 1, i/o): igbvf-mmio
    0000000081a20000-0000000081a23fff (prio 1, i/o): igbvf-msix

and causes MMIO accesses to fail:

    Invalid write at addr 0x281A01520, size 4, region '(null)', reason: rejected
    Invalid read at addr 0x281A00C40, size 4, region '(null)', reason: rejected

To fix this, VF BARs are now registered with pci_register_bar() which
has a type parameter and pcie_sriov_vf_register_bar() is removed.

Fixes: cab1398a60 ("pcie_sriov: Reuse SR-IOV VF device instances")
Signed-off-by: Damien Bergamini <damien.bergamini@eviden.com>
Signed-off-by: Clement Mathieu--Drif <clement.mathieu--drif@eviden.com>
Reviewed-by: Akihiko Odaki <odaki@rsg.ci.i.u-tokyo.ac.jp>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Message-ID: <20250901151314.1038020-1-clement.mathieu--drif@eviden.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
2025-10-05 09:01:08 -04:00
..
_templates
about build-sys: deprecate mips host 2025-09-30 19:33:25 +04:00
config vl: recognize audiodev groups in configuration files 2023-09-22 17:35:11 +02:00
devel docs/code-provenance: AI exceptions are in addition to DCO 2025-09-24 09:26:24 +02:00
interop docs/interop/firmware: Add riscv64 to FirmwareArchitecture 2025-10-02 15:08:36 +10:00
specs docs: hest: add new "etc/acpi_table_hest_addr" and update workflow 2025-10-05 08:17:08 -04:00
sphinx scripts/kerneldoc: Switch to the Python kernel-doc script 2025-08-30 16:37:23 +01:00
sphinx-static treewide: remove unnessary "coding" header 2025-10-01 11:22:07 -04:00
spin treewide: fix paths for relocated files in comments 2025-07-02 18:26:27 +02:00
system aspeed queue: 2025-09-29 10:52:48 -07:00
tools qemu-img: rebase: refresh options/--help (short option change) 2025-07-15 20:49:01 +02:00
user linux-user: Drop deprecated -p option 2025-08-30 07:00:20 +10:00
block-replication.txt
bypass-iommu.txt
COLO-FT.txt chardev: finalize 'reconnect' deprecation 2024-10-28 14:37:25 +08:00
colo-proxy.txt colo: examples: remove mentions of script= and (wrong) downscript= 2024-01-30 21:20:20 +03:00
conf.py treewide: remove unnessary "coding" header 2025-10-01 11:22:07 -04:00
defs.rst.inc
glossary.rst docs: disambiguate cross-references 2025-03-11 10:26:52 +01:00
igd-assign.txt vfio/igd: Require host VGA decode for legacy mode 2025-07-28 17:52:34 +02:00
image-fuzzer.txt
index.rst docs: add a glossary 2025-01-17 10:45:54 +00:00
memory-hotplug.txt
meson.build 9p: remove 'proxy' filesystem backend driver 2024-10-03 19:33:25 +02:00
multi-thread-compression.txt docs tests: Fix use of migrate_set_parameter 2023-09-08 13:08:52 +03:00
multiseat.txt
nvdimm.txt
pci_expander_bridge.txt docs, tests: do not specify scsi=off 2024-06-05 11:00:56 +02:00
pcie.txt
pcie_pci_bridge.txt
pcie_sriov.txt pcie_sriov: Fix broken MMIO accesses from SR-IOV VFs 2025-10-05 09:01:08 -04:00
qcow2-cache.txt docs/interop: convert text files to restructuredText 2025-05-29 17:45:10 +01:00
qdev-device-use.txt
qemu-option-trace.rst.inc
qemupciserial.inf
rdma.txt docs tests: Fix use of migrate_set_parameter 2023-09-08 13:08:52 +03:00
requirements.txt docs: Bump sphinx to 6.2.1 2025-07-16 17:02:46 +02:00
spice-port-fqdn.txt
throttle.txt
xbzrle.txt
xen-save-devices-state.txt