void set_huge_pte_at(struct mm_struct *mm, unsigned long addr,
                     pte_t *ptep, pte_t pte)
 {
-       pmd_t pmd;
+       pmd_t pmd = __pte_to_pmd(pte);
 
-       pmd = __pte_to_pmd(pte);
-       if (!MACHINE_HAS_HPAGE) {
-               /* Emulated huge ptes loose the dirty and young bit */
-               pmd_val(pmd) &= ~_SEGMENT_ENTRY_ORIGIN;
-               pmd_val(pmd) |= pte_page(pte)[1].index;
-       } else
-               pmd_val(pmd) |= _SEGMENT_ENTRY_LARGE;
+       pmd_val(pmd) |= _SEGMENT_ENTRY_LARGE;
        *(pmd_t *) ptep = pmd;
 }
 
 pte_t huge_ptep_get(pte_t *ptep)
 {
-       unsigned long origin;
-       pmd_t pmd;
+       pmd_t pmd = *(pmd_t *) ptep;
 
-       pmd = *(pmd_t *) ptep;
-       if (!MACHINE_HAS_HPAGE && pmd_present(pmd)) {
-               origin = pmd_val(pmd) & _SEGMENT_ENTRY_ORIGIN;
-               pmd_val(pmd) &= ~_SEGMENT_ENTRY_ORIGIN;
-               pmd_val(pmd) |= *(unsigned long *) origin;
-               /* Emulated huge ptes are young and dirty by definition */
-               pmd_val(pmd) |= _SEGMENT_ENTRY_YOUNG | _SEGMENT_ENTRY_DIRTY;
-       }
        return __pmd_to_pte(pmd);
 }
 
        return pte;
 }
 
-int arch_prepare_hugepage(struct page *page)
-{
-       unsigned long addr = page_to_phys(page);
-       pte_t pte;
-       pte_t *ptep;
-       int i;
-
-       if (MACHINE_HAS_HPAGE)
-               return 0;
-
-       ptep = (pte_t *) pte_alloc_one(&init_mm, addr);
-       if (!ptep)
-               return -ENOMEM;
-
-       pte_val(pte) = addr;
-       for (i = 0; i < PTRS_PER_PTE; i++) {
-               set_pte_at(&init_mm, addr + i * PAGE_SIZE, ptep + i, pte);
-               pte_val(pte) += PAGE_SIZE;
-       }
-       page[1].index = (unsigned long) ptep;
-       return 0;
-}
-
-void arch_release_hugepage(struct page *page)
-{
-       pte_t *ptep;
-
-       if (MACHINE_HAS_HPAGE)
-               return;
-
-       ptep = (pte_t *) page[1].index;
-       if (!ptep)
-               return;
-       clear_table((unsigned long *) ptep, _PAGE_INVALID,
-                   PTRS_PER_PTE * sizeof(pte_t));
-       page_table_free(&init_mm, (unsigned long *) ptep);
-       page[1].index = 0;
-}
-
 pte_t *huge_pte_alloc(struct mm_struct *mm,
                        unsigned long addr, unsigned long sz)
 {