]> git.baikalelectronics.ru Git - kernel.git/commit
[PATCH] i386: PARAVIRT: add kmap_atomic_pte for mapping highpte pages
authorJeremy Fitzhardinge <jeremy@goop.org>
Wed, 2 May 2007 17:27:15 +0000 (19:27 +0200)
committerAndi Kleen <andi@basil.nowhere.org>
Wed, 2 May 2007 17:27:15 +0000 (19:27 +0200)
commitb8caab5e7e53df11fbf8eb994234ba7c49892463
tree939c22684e11a4f5f17abb89c4898f016e878e21
parent1f450401ce6f7b595d2b9c695587a719a33a9530
[PATCH] i386: PARAVIRT: add kmap_atomic_pte for mapping highpte pages

Xen and VMI both have special requirements when mapping a highmem pte
page into the kernel address space.  These can be dealt with by adding
a new kmap_atomic_pte() function for mapping highptes, and hooking it
into the paravirt_ops infrastructure.

Xen specifically wants to map the pte page RO, so this patch exposes a
helper function, kmap_atomic_prot, which maps the page with the
specified page protections.

This also adds a kmap_flush_unused() function to clear out the cached
kmap mappings.  Xen needs this to clear out any potential stray RW
mappings of pages which will become part of a pagetable.

[ Zach - vmi.c will need some attention after this patch.  It wasn't
  immediately obvious to me what needs to be done. ]

Signed-off-by: Jeremy Fitzhardinge <jeremy@xensource.com>
Signed-off-by: Andi Kleen <ak@suse.de>
Cc: Zachary Amsden <zach@vmware.com>
arch/i386/kernel/paravirt.c
arch/i386/mm/highmem.c
include/asm-i386/highmem.h
include/asm-i386/paravirt.h
include/asm-i386/pgtable.h
include/linux/highmem.h
mm/highmem.c