3585497 intel-iommu: add iommu lock

2 files Authored by Peter Xu 5 years ago, Committed by Michael Roth 5 years ago,
    intel-iommu: add iommu lock
    
    SECURITY IMPLICATION: this patch fixes a potential race when multiple
    threads access the IOMMU IOTLB cache.
    
    Add a per-iommu big lock to protect IOMMU status.  Currently the only
    thing to be protected is the IOTLB/context cache, since that can be
    accessed even without BQL, e.g., in IO dataplane.
    
    Note that we don't need to protect device page tables since that's fully
    controlled by the guest kernel.  However there is still possibility that
    malicious drivers will program the device to not obey the rule.  In that
    case QEMU can't really do anything useful, instead the guest itself will
    be responsible for all uncertainties.
    
    CC: QEMU Stable <qemu-stable@nongnu.org>
    Reported-by: Fam Zheng <famz@redhat.com>
    Signed-off-by: Peter Xu <peterx@redhat.com>
    Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
    Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
    (cherry picked from commit 1d9efa73e12ddf361ea997c2d532cc4afa6674d1)
    Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
    
        
file modified
+47 -9