@@ -527,6 +527,23 @@ void __init reserve_standard_io_resources(void)
527527
528528}
529529
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+
530547static bool __init snb_gfx_workaround_needed (void )
531548{
532549#ifdef CONFIG_PCI
@@ -845,15 +862,6 @@ void __init setup_arch(char **cmdline_p)
845862 root_mountflags &= ~MS_RDONLY ;
846863 setup_initial_init_mm (_text , _etext , _edata , (void * )_brk_end );
847864
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-
857865 /*
858866 * x86_configure_nx() is called before parse_early_param() to detect
859867 * whether hardware doesn't support NX (so that the early EHCI debug
@@ -897,11 +905,11 @@ void __init setup_arch(char **cmdline_p)
897905 tsc_early_init ();
898906 x86_init .resources .probe_roms ();
899907
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 ( );
905913
906914 e820_add_kernel_range ();
907915 trim_bios_range ();
0 commit comments