@@ -527,6 +527,23 @@ void __init reserve_standard_io_resources(void)
527
527
528
528
}
529
529
530
+ static void __init setup_kernel_resources (void )
531
+ {
532
+ code_resource .start = __pa_symbol (_text );
533
+ code_resource .end = __pa_symbol (_etext )- 1 ;
534
+ rodata_resource .start = __pa_symbol (__start_rodata );
535
+ rodata_resource .end = __pa_symbol (__end_rodata )- 1 ;
536
+ data_resource .start = __pa_symbol (_sdata );
537
+ data_resource .end = __pa_symbol (_edata )- 1 ;
538
+ bss_resource .start = __pa_symbol (__bss_start );
539
+ bss_resource .end = __pa_symbol (__bss_stop )- 1 ;
540
+
541
+ insert_resource (& iomem_resource , & code_resource );
542
+ insert_resource (& iomem_resource , & rodata_resource );
543
+ insert_resource (& iomem_resource , & data_resource );
544
+ insert_resource (& iomem_resource , & bss_resource );
545
+ }
546
+
530
547
static bool __init snb_gfx_workaround_needed (void )
531
548
{
532
549
#ifdef CONFIG_PCI
@@ -845,15 +862,6 @@ void __init setup_arch(char **cmdline_p)
845
862
root_mountflags &= ~MS_RDONLY ;
846
863
setup_initial_init_mm (_text , _etext , _edata , (void * )_brk_end );
847
864
848
- code_resource .start = __pa_symbol (_text );
849
- code_resource .end = __pa_symbol (_etext )- 1 ;
850
- rodata_resource .start = __pa_symbol (__start_rodata );
851
- rodata_resource .end = __pa_symbol (__end_rodata )- 1 ;
852
- data_resource .start = __pa_symbol (_sdata );
853
- data_resource .end = __pa_symbol (_edata )- 1 ;
854
- bss_resource .start = __pa_symbol (__bss_start );
855
- bss_resource .end = __pa_symbol (__bss_stop )- 1 ;
856
-
857
865
/*
858
866
* x86_configure_nx() is called before parse_early_param() to detect
859
867
* whether hardware doesn't support NX (so that the early EHCI debug
@@ -897,11 +905,11 @@ void __init setup_arch(char **cmdline_p)
897
905
tsc_early_init ();
898
906
x86_init .resources .probe_roms ();
899
907
900
- /* after parse_early_param, so could debug it */
901
- insert_resource ( & iomem_resource , & code_resource );
902
- insert_resource ( & iomem_resource , & rodata_resource );
903
- insert_resource ( & iomem_resource , & data_resource );
904
- insert_resource ( & iomem_resource , & bss_resource );
908
+ /*
909
+ * Add resources for kernel text and data to the iomem_resource.
910
+ * Do it after parse_early_param, so it can be debugged.
911
+ */
912
+ setup_kernel_resources ( );
905
913
906
914
e820_add_kernel_range ();
907
915
trim_bios_range ();
0 commit comments