]> git.ipfire.org Git - people/ms/linux.git/commit
ARM: DMA: ensure that old section mappings are flushed from the TLB
authorRussell King <rmk+kernel@arm.linux.org.uk>
Thu, 17 Jul 2014 11:17:45 +0000 (12:17 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 6 Feb 2015 06:35:51 +0000 (22:35 -0800)
commit73e8cfe5a403444d87a46df56007bd676196356d
tree0ae2a2b8779723d125d9b97693e3f3dbe7470324
parent5e45ff13211e09d5d271a31008d9ccb536c4606b
ARM: DMA: ensure that old section mappings are flushed from the TLB

commit 6b076991dca9817e75c37e2f0db6d52611ea42fa upstream.

When setting up the CMA region, we must ensure that the old section
mappings are flushed from the TLB before replacing them with page
tables, otherwise we can suffer from mismatched aliases if the CPU
speculatively prefetches from these mappings at an inopportune time.

A mismatched alias can occur when the TLB contains a section mapping,
but a subsequent prefetch causes it to load a page table mapping,
resulting in the possibility of the TLB containing two matching
mappings for the same virtual address region.

Acked-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Cc: Hou Pengyang <houpengyang@huawei.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
arch/arm/mm/dma-mapping.c