]> 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)
commit6e616ae46724bc58c5b420cf33a9950874146f54
tree89a5454af127be81efff8f55821a07d31e6f4ca3
parent3c404359d870981b202482c1302e63c0a4dee94a
iommu/amd: Fix small race between invalidate_range_end/start

Commit 52228d2 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