From: Thorsten Kohfeldt Date: Mon, 17 Oct 2016 16:58:02 +0000 (-0600) Subject: vfio/pci: Fix vfio_rtl8168_quirk_data_read address offset X-Git-Tag: v2.7.1~7 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=223d1a2da1713adba84115150bd59bd2f9d06866;p=thirdparty%2Fqemu.git vfio/pci: Fix vfio_rtl8168_quirk_data_read address offset Introductory comment for rtl8168 VFIO MSI-X quirk states: At BAR2 offset 0x70 there is a dword data register, offset 0x74 is a dword address register. vfio: vfio_bar_read(0000:05:00.0:BAR2+0x70, 4) = 0xfee00398 // read data Thus, correct offset for data read is 0x70, but function vfio_rtl8168_quirk_data_read() wrongfully uses offset 0x74. Signed-off-by: Thorsten Kohfeldt Signed-off-by: Alex Williamson (cherry picked from commit 31e6a7b17b35711eb44f0e686b5ba68d15bfe4c1) Signed-off-by: Michael Roth --- diff --git a/hw/vfio/pci-quirks.c b/hw/vfio/pci-quirks.c index bec694c8d80..1e97bc4944f 100644 --- a/hw/vfio/pci-quirks.c +++ b/hw/vfio/pci-quirks.c @@ -898,7 +898,7 @@ static uint64_t vfio_rtl8168_quirk_data_read(void *opaque, { VFIOrtl8168Quirk *rtl = opaque; VFIOPCIDevice *vdev = rtl->vdev; - uint64_t data = vfio_region_read(&vdev->bars[2].region, addr + 0x74, size); + uint64_t data = vfio_region_read(&vdev->bars[2].region, addr + 0x70, size); if (rtl->enabled && (vdev->pdev.cap_present & QEMU_PCI_CAP_MSIX)) { hwaddr offset = rtl->addr & 0xfff;