powerpc: convert various functions to use ptdescs
[linux-2.6-block.git] / arch / powerpc / mm / book3s64 / mmu_context.c
index c766e4c26e42ddbd3a20fd25d96d72561e936a6a..1715b07c630c98b5e08b580d3255eb315c8af2c1 100644 (file)
@@ -246,15 +246,15 @@ static void destroy_contexts(mm_context_t *ctx)
 static void pmd_frag_destroy(void *pmd_frag)
 {
        int count;
-       struct page *page;
+       struct ptdesc *ptdesc;
 
-       page = virt_to_page(pmd_frag);
+       ptdesc = virt_to_ptdesc(pmd_frag);
        /* drop all the pending references */
        count = ((unsigned long)pmd_frag & ~PAGE_MASK) >> PMD_FRAG_SIZE_SHIFT;
        /* We allow PTE_FRAG_NR fragments from a PTE page */
-       if (atomic_sub_and_test(PMD_FRAG_NR - count, &page->pt_frag_refcount)) {
-               pgtable_pmd_page_dtor(page);
-               __free_page(page);
+       if (atomic_sub_and_test(PMD_FRAG_NR - count, &ptdesc->pt_frag_refcount)) {
+               pagetable_pmd_dtor(ptdesc);
+               pagetable_free(ptdesc);
        }
 }