hugetlbfs: move hugepagesz= parsing to arch independent code
[linux-2.6-microblaze.git] / arch / sparc / mm / init_64.c
index 1cf0d66..1b1f1ac 100644 (file)
@@ -360,16 +360,11 @@ static void __init pud_huge_patch(void)
        __asm__ __volatile__("flush %0" : : "r" (addr));
 }
 
-static int __init setup_hugepagesz(char *string)
+bool __init arch_hugetlb_valid_size(unsigned long size)
 {
-       unsigned long long hugepage_size;
-       unsigned int hugepage_shift;
+       unsigned int hugepage_shift = ilog2(size);
        unsigned short hv_pgsz_idx;
        unsigned int hv_pgsz_mask;
-       int rc = 0;
-
-       hugepage_size = memparse(string, &string);
-       hugepage_shift = ilog2(hugepage_size);
 
        switch (hugepage_shift) {
        case HPAGE_16GB_SHIFT:
@@ -397,20 +392,11 @@ static int __init setup_hugepagesz(char *string)
                hv_pgsz_mask = 0;
        }
 
-       if ((hv_pgsz_mask & cpu_pgsz_mask) == 0U) {
-               hugetlb_bad_size();
-               pr_err("hugepagesz=%llu not supported by MMU.\n",
-                       hugepage_size);
-               goto out;
-       }
+       if ((hv_pgsz_mask & cpu_pgsz_mask) == 0U)
+               return false;
 
-       add_huge_page_size(hugepage_size);
-       rc = 1;
-
-out:
-       return rc;
+       return true;
 }
-__setup("hugepagesz=", setup_hugepagesz);
 #endif /* CONFIG_HUGETLB_PAGE */
 
 void update_mmu_cache(struct vm_area_struct *vma, unsigned long address, pte_t *ptep)
@@ -2488,7 +2474,7 @@ void __init paging_init(void)
 
                max_zone_pfns[ZONE_NORMAL] = end_pfn;
 
-               free_area_init_nodes(max_zone_pfns);
+               free_area_init(max_zone_pfns);
        }
 
        printk("Booting Linux...\n");