File tree 1 file changed +6
-2
lines changed
1 file changed +6
-2
lines changed Original file line number Diff line number Diff line change @@ -746,14 +746,18 @@ void __init protect_kernel_text_data(void)
746
746
unsigned long init_data_start = (unsigned long )__init_data_begin ;
747
747
unsigned long rodata_start = (unsigned long )__start_rodata ;
748
748
unsigned long data_start = (unsigned long )_data ;
749
- unsigned long max_low = (unsigned long )(__va (PFN_PHYS (max_low_pfn )));
749
+ #if defined(CONFIG_64BIT ) && defined(CONFIG_MMU )
750
+ unsigned long end_va = kernel_virt_addr + load_sz ;
751
+ #else
752
+ unsigned long end_va = (unsigned long )(__va (PFN_PHYS (max_low_pfn )));
753
+ #endif
750
754
751
755
set_memory_ro (text_start , (init_text_start - text_start ) >> PAGE_SHIFT );
752
756
set_memory_ro (init_text_start , (init_data_start - init_text_start ) >> PAGE_SHIFT );
753
757
set_memory_nx (init_data_start , (rodata_start - init_data_start ) >> PAGE_SHIFT );
754
758
/* rodata section is marked readonly in mark_rodata_ro */
755
759
set_memory_nx (rodata_start , (data_start - rodata_start ) >> PAGE_SHIFT );
756
- set_memory_nx (data_start , (max_low - data_start ) >> PAGE_SHIFT );
760
+ set_memory_nx (data_start , (end_va - data_start ) >> PAGE_SHIFT );
757
761
}
758
762
759
763
void mark_rodata_ro (void )
You can’t perform that action at this time.
0 commit comments