git.openpandora.org
/
pandora-kernel.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
x86/paravirt: PTE updates in k(un)map_atomic need to be synchronous, regardless of...
[pandora-kernel.git]
/
arch
/
x86
/
mm
/
highmem_32.c
diff --git
a/arch/x86/mm/highmem_32.c
b/arch/x86/mm/highmem_32.c
index
b499626
..
f4f29b1
100644
(file)
--- a/
arch/x86/mm/highmem_32.c
+++ b/
arch/x86/mm/highmem_32.c
@@
-45,6
+45,7
@@
void *kmap_atomic_prot(struct page *page, pgprot_t prot)
vaddr = __fix_to_virt(FIX_KMAP_BEGIN + idx);
BUG_ON(!pte_none(*(kmap_pte-idx)));
set_pte(kmap_pte-idx, mk_pte(page, prot));
vaddr = __fix_to_virt(FIX_KMAP_BEGIN + idx);
BUG_ON(!pte_none(*(kmap_pte-idx)));
set_pte(kmap_pte-idx, mk_pte(page, prot));
+ arch_flush_lazy_mmu_mode();
return (void *)vaddr;
}
return (void *)vaddr;
}
@@
-88,6
+89,7
@@
void __kunmap_atomic(void *kvaddr)
*/
kpte_clear_flush(kmap_pte-idx, vaddr);
kmap_atomic_idx_pop();
*/
kpte_clear_flush(kmap_pte-idx, vaddr);
kmap_atomic_idx_pop();
+ arch_flush_lazy_mmu_mode();
}
#ifdef CONFIG_DEBUG_HIGHMEM
else {
}
#ifdef CONFIG_DEBUG_HIGHMEM
else {