x86/MMCFG: don't ignore error from intercept handler
authorJan Beulich <jbeulich@suse.com>
Mon, 25 Apr 2016 12:22:29 +0000 (14:22 +0200)
committerJan Beulich <jbeulich@suse.com>
Mon, 25 Apr 2016 12:22:29 +0000 (14:22 +0200)
In commit 9256f66c16 ("x86/PCI: intercept all PV Dom0 MMCFG writes")
for an unclear to me reason I left pci_conf_write_intercept()'s return
value unchecked. Correct this.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
Release-acked-by: Wei Liu <wei.liu2@citrix.com>
xen/arch/x86/mm.c

index bca75321f043cbd22215e60739a12350502629cb..ca26f49b8cafad11c68c744ec418850fcbd968cb 100644 (file)
@@ -5430,11 +5430,11 @@ int mmcfg_intercept_write(
     }
 
     offset &= 0xfff;
-    pci_conf_write_intercept(mmio_ctxt->seg, mmio_ctxt->bdf, offset, bytes,
-                             p_data);
-    pci_mmcfg_write(mmio_ctxt->seg, PCI_BUS(mmio_ctxt->bdf),
-                    PCI_DEVFN2(mmio_ctxt->bdf), offset, bytes,
-                    *(uint32_t *)p_data);
+    if ( pci_conf_write_intercept(mmio_ctxt->seg, mmio_ctxt->bdf,
+                                  offset, bytes, p_data) >= 0 )
+        pci_mmcfg_write(mmio_ctxt->seg, PCI_BUS(mmio_ctxt->bdf),
+                        PCI_DEVFN2(mmio_ctxt->bdf), offset, bytes,
+                        *(uint32_t *)p_data);
 
     return X86EMUL_OKAY;
 }