x86, mm: Unify kernel_physical_mapping_init() API
[pandora-kernel.git] / arch / x86 / mm / init_32.c
index 9a0c258..2226f2c 100644 (file)
@@ -241,6 +241,7 @@ kernel_physical_mapping_init(unsigned long start,
                             unsigned long page_size_mask)
 {
        int use_pse = page_size_mask == (1<<PG_LEVEL_2M);
+       unsigned long last_map_addr = end;
        unsigned long start_pfn, end_pfn;
        pgd_t *pgd_base = swapper_pg_dir;
        int pgd_idx, pmd_idx, pte_ofs;
@@ -341,9 +342,10 @@ repeat:
                                        prot = PAGE_KERNEL_EXEC;
 
                                pages_4k++;
-                               if (mapping_iter == 1)
+                               if (mapping_iter == 1) {
                                        set_pte(pte, pfn_pte(pfn, init_prot));
-                               else
+                                       last_map_addr = (pfn << PAGE_SHIFT) + PAGE_SIZE;
+                               } else
                                        set_pte(pte, pfn_pte(pfn, prot));
                        }
                }
@@ -368,7 +370,7 @@ repeat:
                mapping_iter = 2;
                goto repeat;
        }
-       return 0;
+       return last_map_addr;
 }
 
 pte_t *kmap_pte;