summaryrefslogtreecommitdiffstats
path: root/arch/arm/mm/copypage-v3.c
diff options
context:
space:
mode:
authorRussell King <rmk+kernel@arm.linux.org.uk>2009-12-18 17:24:34 +0100
committerRussell King <rmk+kernel@arm.linux.org.uk>2010-01-20 14:48:30 +0100
commit56dd47098abe1fdde598a8d8b7c04d775506f456 (patch)
tree5eda8a531087c9c068702aa426db8479a77147f8 /arch/arm/mm/copypage-v3.c
parentARM: make_coherent: convert adjust_pte() to use p*d_none_or_clear_bad() (diff)
downloadlinux-56dd47098abe1fdde598a8d8b7c04d775506f456.tar.xz
linux-56dd47098abe1fdde598a8d8b7c04d775506f456.zip
ARM: make_coherent: fix problems with highpte, part 1
update_mmu_cache() is called with a page table already mapped. We call make_coherent(), which then calls adjust_pte() which wants to map other page tables. This causes kmap_atomic() to BUG() because the slot its trying to use is already taken. Since do_adjust_pte() modifies the page tables, we are also missing any form of locking, so we're risking corrupting the page tables. Fix this by using pte_offset_map_nested(), and taking the pte page table lock around do_adjust_pte(). Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'arch/arm/mm/copypage-v3.c')
0 files changed, 0 insertions, 0 deletions