iommu/amd: Fix small race between invalidate_range_end/start
authorJoerg Roedel <jroedel@suse.de>
Fri, 20 Jun 2014 14:14:22 +0000 (16:14 +0200)
committerJoerg Roedel <jroedel@suse.de>
Fri, 20 Jun 2014 14:14:22 +0000 (16:14 +0200)
Commit e79df31 introduced mmu_notifer_count to protect
against parallel mmu_notifier_invalidate_range_start/end
calls. The patch left a small race condition when
invalidate_range_end() races with a new
invalidate_range_start() the empty page-table may be
reverted leading to stale TLB entries in the IOMMU and the
device. Use a spin_lock instead of just an atomic variable
to eliminate the race.

Signed-off-by: Joerg Roedel <jroedel@suse.de>

No differences found