diff options
author | Steve French <sfrench@us.ibm.com> | 2007-02-07 00:30:38 +0000 |
---|---|---|
committer | Steve French <sfrench@us.ibm.com> | 2007-02-07 00:30:38 +0000 |
commit | 1d9564ea0ac72ef7c4068d66fe42ad23af4ff53f (patch) | |
tree | fa63b4c1bbd775252f71d05fef4de6a904eb4448 /arch/s390/mm/init.c | |
parent | 87f440e70e07dace7db130f2f9fcea3f132aad8f (diff) | |
parent | dda2ac15d23b38e4335e858848aa8c9a6710304f (diff) | |
download | op-kernel-dev-1d9564ea0ac72ef7c4068d66fe42ad23af4ff53f.zip op-kernel-dev-1d9564ea0ac72ef7c4068d66fe42ad23af4ff53f.tar.gz |
Merge branch 'master' of /pub/scm/linux/kernel/git/torvalds/linux-2.6
Diffstat (limited to 'arch/s390/mm/init.c')
-rw-r--r-- | arch/s390/mm/init.c | 20 |
1 files changed, 8 insertions, 12 deletions
diff --git a/arch/s390/mm/init.c b/arch/s390/mm/init.c index 4bb21be..b3e7c45 100644 --- a/arch/s390/mm/init.c +++ b/arch/s390/mm/init.c @@ -25,7 +25,7 @@ #include <linux/bootmem.h> #include <linux/pfn.h> #include <linux/poison.h> - +#include <linux/initrd.h> #include <asm/processor.h> #include <asm/system.h> #include <asm/uaccess.h> @@ -95,20 +95,18 @@ static void __init setup_ro_region(void) pte_t new_pte; unsigned long address, end; - address = ((unsigned long)&__start_rodata) & PAGE_MASK; - end = PFN_ALIGN((unsigned long)&__end_rodata); + address = ((unsigned long)&_stext) & PAGE_MASK; + end = PFN_ALIGN((unsigned long)&_eshared); for (; address < end; address += PAGE_SIZE) { pgd = pgd_offset_k(address); pmd = pmd_offset(pgd, address); pte = pte_offset_kernel(pmd, address); new_pte = mk_pte_phys(address, __pgprot(_PAGE_RO)); - set_pte(pte, new_pte); + *pte = new_pte; } } -extern void vmem_map_init(void); - /* * paging_init() sets up the page tables */ @@ -125,11 +123,11 @@ void __init paging_init(void) #ifdef CONFIG_64BIT pgdir_k = (__pa(swapper_pg_dir) & PAGE_MASK) | _KERN_REGION_TABLE; for (i = 0; i < PTRS_PER_PGD; i++) - pgd_clear(pg_dir + i); + pgd_clear_kernel(pg_dir + i); #else pgdir_k = (__pa(swapper_pg_dir) & PAGE_MASK) | _KERNSEG_TABLE; for (i = 0; i < PTRS_PER_PGD; i++) - pmd_clear((pmd_t *)(pg_dir + i)); + pmd_clear_kernel((pmd_t *)(pg_dir + i)); #endif vmem_map_init(); setup_ro_region(); @@ -174,10 +172,8 @@ void __init mem_init(void) datasize >>10, initsize >> 10); printk("Write protected kernel read-only data: %#lx - %#lx\n", - (unsigned long)&__start_rodata, - PFN_ALIGN((unsigned long)&__end_rodata) - 1); - printk("Virtual memmap size: %ldk\n", - (max_pfn * sizeof(struct page)) >> 10); + (unsigned long)&_stext, + PFN_ALIGN((unsigned long)&_eshared) - 1); } void free_initmem(void) |