@@ -725,13 +725,13 @@ void _pmap_init(pmap_t *pmap, void **vstart, void **vend)
725725 _pmap_enter (pmap , (addr_t )pmap_common .start , (* vstart ), PGHD_WRITE | PGHD_READ | PGHD_PRESENT , NULL , 0 );
726726
727727 /* Map kernel text & rodata as RX */
728- for (i = VADDR_KERNEL ; i < CEIL_PAGE ((ptr_t )(& __bss_start )); i += SIZE_PAGE ) {
728+ for (i = VADDR_KERNEL ; i < CEIL_PAGE ((ptr_t )(& _etext )); i += SIZE_PAGE ) {
729729 addr = pmap_common .kernel + (i - VADDR_KERNEL );
730730 _pmap_enter (pmap , addr , (void * )i , PGHD_READ | PGHD_EXEC | PGHD_PRESENT , NULL , 0 );
731731 }
732732
733- /* Map kernel bss and copied syspage as RW */
734- for (i = CEIL_PAGE ((ptr_t )(& __bss_start )); i < CEIL_PAGE ((ptr_t )(& _end )) + SIZE_PAGE ; i += SIZE_PAGE ) {
733+ /* Map kernel bss as RW */
734+ for (i = CEIL_PAGE ((ptr_t )(& __bss_start )); i < CEIL_PAGE ((ptr_t )(& _end )); i += SIZE_PAGE ) {
735735 addr = pmap_common .kernel + (i - VADDR_KERNEL );
736736 _pmap_enter (pmap , addr , (void * )i , PGHD_WRITE | PGHD_READ | PGHD_PRESENT , NULL , 0 );
737737 }
@@ -755,6 +755,6 @@ void _pmap_halInit(void)
755755 pmap_common .memMap .count = 0 ;
756756
757757 pmap_common .kernel = syspage -> pkernel ;
758- pmap_common .kernelsz = CEIL_PAGE (& _end ) - ( addr_t ) & _start + SIZE_PAGE ;
759- pmap_common .vkernelEnd = VADDR_KERNEL + pmap_common . kernelsz ;
758+ pmap_common .kernelsz = CEIL_PAGE (& _end ) - VADDR_KERNEL ;
759+ pmap_common .vkernelEnd = CEIL_PAGE ( & _end ) ;
760760}
0 commit comments