From: Alex Williamson Date: Thu, 26 May 2016 15:43:21 +0000 (-0600) Subject: vfio/pci: Setup BAR quirks after capabilities probing X-Git-Tag: Tizen_Studio_1.3_Release_p2.3.2~6^2~13^2~6^2~246^2~6 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=581406e0e349be99b6c08a7a1b492af5951f9a4e;p=sdk%2Femulator%2Fqemu.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 Reviewed-by: Gerd Hoffmann Tested-by: Gerd Hoffmann --- diff --git a/hw/vfio/pci.c b/hw/vfio/pci.c index daf10b8dd3..aa6fb7bd6f 100644 --- a/hw/vfio/pci.c +++ b/hw/vfio/pci.c @@ -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,