diff options
Diffstat (limited to 'arch/x86_64')
-rw-r--r-- | arch/x86_64/mm/init.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/arch/x86_64/mm/init.c b/arch/x86_64/mm/init.c index 38f5d6368006..458893b376f8 100644 --- a/arch/x86_64/mm/init.c +++ b/arch/x86_64/mm/init.c | |||
@@ -600,6 +600,16 @@ void mark_rodata_ro(void) | |||
600 | { | 600 | { |
601 | unsigned long start = (unsigned long)_stext, end; | 601 | unsigned long start = (unsigned long)_stext, end; |
602 | 602 | ||
603 | #ifdef CONFIG_HOTPLUG_CPU | ||
604 | /* It must still be possible to apply SMP alternatives. */ | ||
605 | if (num_possible_cpus() > 1) | ||
606 | start = (unsigned long)_etext; | ||
607 | #endif | ||
608 | |||
609 | #ifdef CONFIG_KPROBES | ||
610 | start = (unsigned long)__start_rodata; | ||
611 | #endif | ||
612 | |||
603 | end = (unsigned long)__end_rodata; | 613 | end = (unsigned long)__end_rodata; |
604 | start = (start + PAGE_SIZE - 1) & PAGE_MASK; | 614 | start = (start + PAGE_SIZE - 1) & PAGE_MASK; |
605 | end &= PAGE_MASK; | 615 | end &= PAGE_MASK; |