diff options
Diffstat (limited to 'arch/parisc/mm/init.c')
-rw-r--r-- | arch/parisc/mm/init.c | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/arch/parisc/mm/init.c b/arch/parisc/mm/init.c index e7e626bcd0be..f88a52b8531c 100644 --- a/arch/parisc/mm/init.c +++ b/arch/parisc/mm/init.c | |||
@@ -513,17 +513,15 @@ static void __init map_pages(unsigned long start_vaddr, | |||
513 | 513 | ||
514 | void __init set_kernel_text_rw(int enable_read_write) | 514 | void __init set_kernel_text_rw(int enable_read_write) |
515 | { | 515 | { |
516 | unsigned long start = (unsigned long)_stext; | 516 | unsigned long start = (unsigned long)__init_begin; |
517 | unsigned long end = (unsigned long)_etext; | 517 | unsigned long end = (unsigned long)_etext; |
518 | 518 | ||
519 | map_pages(start, __pa(start), end-start, | 519 | map_pages(start, __pa(start), end-start, |
520 | PAGE_KERNEL_RWX, enable_read_write ? 1:0); | 520 | PAGE_KERNEL_RWX, enable_read_write ? 1:0); |
521 | 521 | ||
522 | /* force the kernel to see the new TLB entries */ | 522 | /* force the kernel to see the new page table entries */ |
523 | __flush_tlb_range(0, start, end); | 523 | flush_cache_all(); |
524 | 524 | flush_tlb_all(); | |
525 | /* dump old cached instructions */ | ||
526 | flush_icache_range(start, end); | ||
527 | } | 525 | } |
528 | 526 | ||
529 | void __ref free_initmem(void) | 527 | void __ref free_initmem(void) |