]> git.baikalelectronics.ru Git - kernel.git/commit
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)
commit276a14230c2e1d045f0fa69308fffabca7a0ad95
tree89a5454af127be81efff8f55821a07d31e6f4ca3
parent2d8ed475f63c97bb7c0169d79a9b20d575231201
iommu/amd: Fix small race between invalidate_range_end/start

Commit af54aba 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>
drivers/iommu/amd_iommu_v2.c