mirror of https://gitee.com/openkylin/qemu.git
vfio/pci: Setup BAR quirks after capabilities probing
Capability probing modifies wmask, which quirks may be interested in changing themselves. Apply our BAR quirks after the capability scan to make this possible. Signed-off-by: Alex Williamson <alex.williamson@redhat.com> Reviewed-by: Gerd Hoffmann <kraxel@redhat.com> Tested-by: Gerd Hoffmann <kraxel@redhat.com>
This commit is contained in:
parent
182bca4592
commit
581406e0e3
|
@ -1440,8 +1440,6 @@ static void vfio_bar_setup(VFIOPCIDevice *vdev, int nr)
|
|||
vdev->vbasedev.name, nr);
|
||||
}
|
||||
|
||||
vfio_bar_quirk_setup(vdev, nr);
|
||||
|
||||
pci_register_bar(&vdev->pdev, nr, type, bar->region.mem);
|
||||
}
|
||||
|
||||
|
@ -2394,7 +2392,7 @@ static int vfio_initfn(PCIDevice *pdev)
|
|||
ssize_t len;
|
||||
struct stat st;
|
||||
int groupid;
|
||||
int ret;
|
||||
int i, ret;
|
||||
|
||||
if (!vdev->vbasedev.sysfsdev) {
|
||||
vdev->vbasedev.sysfsdev =
|
||||
|
@ -2560,6 +2558,10 @@ static int vfio_initfn(PCIDevice *pdev)
|
|||
vfio_vga_quirk_setup(vdev);
|
||||
}
|
||||
|
||||
for (i = 0; i < PCI_ROM_SLOT; i++) {
|
||||
vfio_bar_quirk_setup(vdev, i);
|
||||
}
|
||||
|
||||
/* QEMU emulates all of MSI & MSIX */
|
||||
if (pdev->cap_present & QEMU_PCI_CAP_MSIX) {
|
||||
memset(vdev->emulated_config_bits + pdev->msix_cap, 0xff,
|
||||
|
|
Loading…
Reference in New Issue