mirror of
https://github.com/DragonOS-Community/DragonOS.git
synced 2025-06-15 08:56:47 +00:00
🐛 修复了物理页分配时,起始页号计算错误的问题
This commit is contained in:
parent
67633eb04e
commit
26c23e0e65
@ -300,7 +300,7 @@ struct Page *alloc_pages(unsigned int zone_select, int num, ul flags)
|
|||||||
// 寻找连续num个空页
|
// 寻找连续num个空页
|
||||||
if (!(((*p >> k) | (*(p + 1) << (64 - k))) & (num == 64 ? 0xffffffffffffffffUL : ((1UL << num) - 1))))
|
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)
|
for (ul l = 0; l < num; ++l)
|
||||||
{
|
{
|
||||||
struct Page *x = memory_management_struct.pages_struct + start_page_num + l;
|
struct Page *x = memory_management_struct.pages_struct + start_page_num + l;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user