diff options
author | Russell King <rmk+kernel@arm.linux.org.uk> | 2009-12-18 16:24:34 +0000 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2010-01-20 13:48:30 +0000 |
commit | 56dd47098abe1fdde598a8d8b7c04d775506f456 (patch) | |
tree | 5eda8a531087c9c068702aa426db8479a77147f8 /drivers/ssb/pcmcia.c | |
parent | f8a85f1164a33e3eb5b421b137ced793ed53ee33 (diff) | |
download | linux-56dd47098abe1fdde598a8d8b7c04d775506f456.tar.gz linux-56dd47098abe1fdde598a8d8b7c04d775506f456.tar.bz2 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 'drivers/ssb/pcmcia.c')
0 files changed, 0 insertions, 0 deletions