From: Peter Xu Date: Tue, 29 Nov 2016 05:43:40 +0000 (+0800) Subject: intel_iommu: fix incorrect device invalidate X-Git-Tag: v2.7.1~12 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=0ef167c907c13dc706ac08e96a095ff5c7d75445;p=thirdparty%2Fqemu.git intel_iommu: fix incorrect device invalidate "mask" needs to be inverted before use. Signed-off-by: Peter Xu Reviewed-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin (cherry picked from commit 6cb99acc2808cc41e2d772a23e9cc564515535cc) Signed-off-by: Michael Roth --- diff --git a/hw/i386/intel_iommu.c b/hw/i386/intel_iommu.c index 28c31a2cdfa..a22545b365f 100644 --- a/hw/i386/intel_iommu.c +++ b/hw/i386/intel_iommu.c @@ -985,6 +985,7 @@ static void vtd_context_device_invalidate(IntelIOMMUState *s, mask = 7; /* Mask bit 2:0 in the SID field */ break; } + mask = ~mask; VTD_DPRINTF(INV, "device-selective invalidation source 0x%"PRIx16 " mask %"PRIu16, source_id, mask); vtd_bus = vtd_find_as_from_bus_num(s, VTD_SID_TO_BUS(source_id));