• A
    KVM: lock slots_lock around device assignment · 21a1416a
    Alex Williamson 提交于
    As pointed out by Jason Baron, when assigning a device to a guest
    we first set the iommu domain pointer, which enables mapping
    and unmapping of memory slots to the iommu.  This leaves a window
    where this path is enabled, but we haven't synchronized the iommu
    mappings to the existing memory slots.  Thus a slot being removed
    at that point could send us down unexpected code paths removing
    non-existent pinnings and iommu mappings.  Take the slots_lock
    around creating the iommu domain and initial mappings as well as
    around iommu teardown to avoid this race.
    Signed-off-by: NAlex Williamson <alex.williamson@redhat.com>
    Signed-off-by: NMarcelo Tosatti <mtosatti@redhat.com>
    21a1416a
iommu.c 8.3 KB