xen: Clear PG_pinned in release_{pt,pd}()
[safe/jmp/linux-2.6] / arch / x86 / xen / mmu.c
index e618473..2a054ef 100644 (file)
@@ -58,7 +58,8 @@
 
 xmaddr_t arbitrary_virt_to_machine(unsigned long address)
 {
-       pte_t *pte = lookup_address(address);
+       unsigned int level;
+       pte_t *pte = lookup_address(address, &level);
        unsigned offset = address & PAGE_MASK;
 
        BUG_ON(pte == NULL);
@@ -70,8 +71,9 @@ void make_lowmem_page_readonly(void *vaddr)
 {
        pte_t *pte, ptev;
        unsigned long address = (unsigned long)vaddr;
+       unsigned int level;
 
-       pte = lookup_address(address);
+       pte = lookup_address(address, &level);
        BUG_ON(pte == NULL);
 
        ptev = pte_wrprotect(*pte);
@@ -84,8 +86,9 @@ void make_lowmem_page_readwrite(void *vaddr)
 {
        pte_t *pte, ptev;
        unsigned long address = (unsigned long)vaddr;
+       unsigned int level;
 
-       pte = lookup_address(address);
+       pte = lookup_address(address, &level);
        BUG_ON(pte == NULL);
 
        ptev = pte_mkwrite(*pte);
@@ -307,13 +310,6 @@ pgd_t xen_make_pgd(unsigned long pgd)
 }
 #endif /* CONFIG_X86_PAE */
 
-enum pt_level {
-       PT_PGD,
-       PT_PUD,
-       PT_PMD,
-       PT_PTE
-};
-
 /*
   (Yet another) pagetable walker.  This one is intended for pinning a
   pagetable.  This means that it walks a pagetable and calls the