From 26c23e0e650ca70f546ccada1b302c6e3b5a8425 Mon Sep 17 00:00:00 2001 From: fslongjin Date: Thu, 10 Feb 2022 14:01:43 +0800 Subject: [PATCH] =?UTF-8?q?:bug:=20=E4=BF=AE=E5=A4=8D=E4=BA=86=E7=89=A9?= =?UTF-8?q?=E7=90=86=E9=A1=B5=E5=88=86=E9=85=8D=E6=97=B6=EF=BC=8C=E8=B5=B7?= =?UTF-8?q?=E5=A7=8B=E9=A1=B5=E5=8F=B7=E8=AE=A1=E7=AE=97=E9=94=99=E8=AF=AF?= =?UTF-8?q?=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- kernel/mm/mm.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kernel/mm/mm.c b/kernel/mm/mm.c index 2c67c2f2..774e49c3 100644 --- a/kernel/mm/mm.c +++ b/kernel/mm/mm.c @@ -300,7 +300,7 @@ struct Page *alloc_pages(unsigned int zone_select, int num, ul flags) // 寻找连续num个空页 if (!(((*p >> k) | (*(p + 1) << (64 - k))) & (num == 64 ? 0xffffffffffffffffUL : ((1UL << num) - 1)))) { - ul start_page_num = j + k - 1; // 计算得到要开始获取的内存页的页号(书上的公式有问题,这个是改过之后的版本) + ul start_page_num = j + k - shift; // 计算得到要开始获取的内存页的页号(书上的公式有问题,这个是改过之后的版本) for (ul l = 0; l < num; ++l) { struct Page *x = memory_management_struct.pages_struct + start_page_num + l;