diff --git a/kernel/src/mm/mm.c b/kernel/src/mm/mm.c index ca459e0b..ec08413a 100644 --- a/kernel/src/mm/mm.c +++ b/kernel/src/mm/mm.c @@ -196,7 +196,7 @@ void mm_init() memory_management_struct.zones_struct_len = (memory_management_struct.count_zones * sizeof(struct Zone) + sizeof(ul) - 1) & (~(sizeof(ul) - 1)); ZONE_DMA_INDEX = 0; - ZONE_NORMAL_INDEX = 0; + ZONE_NORMAL_INDEX = memory_management_struct.count_zones ; ZONE_UNMAPPED_INDEX = 0; // kdebug("ZONE_DMA_INDEX=%d\tZONE_NORMAL_INDEX=%d\tZONE_UNMAPPED_INDEX=%d", ZONE_DMA_INDEX, ZONE_NORMAL_INDEX, ZONE_UNMAPPED_INDEX); @@ -323,7 +323,7 @@ struct Page *alloc_pages(unsigned int zone_select, int num, ul flags) break; } - for (int i = zone_start; i <= zone_end; ++i) + for (int i = zone_start; i < zone_end; ++i) { if ((memory_management_struct.zones_struct + i)->count_pages_free < num) continue; diff --git a/tools/grub_auto_install.sh b/tools/grub_auto_install.sh index 7a31ffa3..7f69d156 100644 --- a/tools/grub_auto_install.sh +++ b/tools/grub_auto_install.sh @@ -4,9 +4,9 @@ grub_dir_i386_efi=${ABS_PREFIX}/arch/i386/efi/grub grub_dir_i386_legacy=${ABS_PREFIX}/arch/i386/legacy/grub grub_dir_x86_64_efi=${ABS_PREFIX}/arch/x86_64/efi/grub -mkdir -p ${grub_dir_i386_efi} -mkdir -p ${grub_dir_i386_legacy} -mkdir -p ${grub_dir_x86_64_efi} +sudo mkdir -p ${grub_dir_i386_efi} +sudo mkdir -p ${grub_dir_i386_legacy} +sudo mkdir -p ${grub_dir_x86_64_efi} # 防止外层声明了环境变量,影响到grub的编译 export CC=gcc