]> git.hungrycats.org Git - linux/commitdiff
ppc64: kill MAP_NR, dont mark free_initmem as __init
authorAnton Blanchard <anton@samba.org>
Fri, 31 May 2002 21:27:43 +0000 (07:27 +1000)
committerAnton Blanchard <anton@samba.org>
Fri, 31 May 2002 21:27:43 +0000 (07:27 +1000)
arch/ppc64/mm/init.c
include/asm-ppc64/page.h
include/asm-ppc64/pgtable.h

index 03dcf1172060ea621010441bb166e7229f9d3b29..ced21b33f4a25cff3c8fbb1c6a6117a5e8d90035 100644 (file)
@@ -392,38 +392,32 @@ __flush_tlb_range(struct mm_struct *mm, unsigned long start, unsigned long end)
                flush_hash_range(context, i, local);
 }
 
-
-void __init free_initmem(void)
+void free_initmem(void)
 {
-       unsigned long a;
-       unsigned long num_freed_pages = 0;
-#define FREESEC(START,END,CNT) do { \
-       a = (unsigned long)(&START); \
-       for (; a < (unsigned long)(&END); a += PAGE_SIZE) { \
-               clear_bit(PG_reserved, &mem_map[MAP_NR(a)].flags); \
-               set_page_count(mem_map+MAP_NR(a), 1); \
-               free_page(a); \
-               CNT++; \
-       } \
-} while (0)
-
-       FREESEC(__init_begin,__init_end,num_freed_pages);
-
-       printk ("Freeing unused kernel memory: %ldk init\n",
-               PGTOKB(num_freed_pages));
+       unsigned long addr;
+
+       addr = (unsigned long)(&__init_begin);
+       for (; addr < (unsigned long)(&__init_end); addr += PAGE_SIZE) {
+               ClearPageReserved(virt_to_page(addr));
+               set_page_count(virt_to_page(addr), 1);
+               free_page(addr);
+               totalram_pages++;
+       }
+       printk ("Freeing unused kernel memory: %dk freed\n",
+               (&__init_end - &__init_begin) >> 10);
 }
 
 #ifdef CONFIG_BLK_DEV_INITRD
 void free_initrd_mem(unsigned long start, unsigned long end)
 {
-       unsigned long xstart = start;
+       if (start < end)
+               printk ("Freeing initrd memory: %ldk freed\n", (end - start) >> 10);
        for (; start < end; start += PAGE_SIZE) {
-               ClearPageReserved(mem_map + MAP_NR(start));
-               set_page_count(mem_map+MAP_NR(start), 1);
+               ClearPageReserved(virt_to_page(start));
+               set_page_count(virt_to_page(start), 1);
                free_page(start);
                totalram_pages++;
        }
-       printk ("Freeing initrd memory: %ldk freed\n", (end - xstart) >> 10);
 }
 #endif
 
@@ -572,11 +566,11 @@ void __init mem_init(void)
                for (addr = (unsigned long)sysmap;
                     addr < PAGE_ALIGN((unsigned long)sysmap+sysmap_size) ;
                     addr += PAGE_SIZE)
-                       SetPageReserved(mem_map + MAP_NR(addr));
+                       SetPageReserved(virt_to_page(addr));
        
        for (addr = KERNELBASE; addr <= (unsigned long)__va(lmb_end_of_DRAM());
             addr += PAGE_SIZE) {
-               if (!PageReserved(mem_map + MAP_NR(addr)))
+               if (!PageReserved(virt_to_page(addr)))
                        continue;
                if (addr < (ulong) etext)
                        codepages++;
index b11cd23aa171769669e50fd93ecb367c5ffa1639..8cb19727c4aa6300226b1047aa1ebf8c4c430790 100644 (file)
@@ -222,8 +222,6 @@ static inline int get_order(unsigned long size)
 #define pfn_valid(pfn)         ((pfn) < max_mapnr)
 #define virt_addr_valid(kaddr) pfn_valid(__pa(kaddr) >> PAGE_SHIFT)
 
-#define MAP_NR(addr)           (__pa(addr) >> PAGE_SHIFT)
-
 #define VM_DATA_DEFAULT_FLAGS  (VM_READ | VM_WRITE | VM_EXEC | \
                                 VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC)
 
index 6747e6099bc7fbf0a9d1ce0763ca91a90e5a3785..48d9f43a3e492dc14299fa0a3703dd38c0c90ba6 100644 (file)
  * for zero-mapped memory areas etc..
  */
 extern unsigned long empty_zero_page[PAGE_SIZE/sizeof(unsigned long)];
-#define ZERO_PAGE(vaddr) (mem_map + MAP_NR(empty_zero_page))
+#define ZERO_PAGE(vaddr) (virt_to_page(empty_zero_page))
 #endif /* __ASSEMBLY__ */
 
 /* shift to put page number into pte */