修正页表中的映射错误

This commit is contained in:
KAAAsS 2021-05-15 00:11:01 +08:00
parent 61fad2c531
commit 830283078f
Signed by: KAAAsS
GPG Key ID: D56625F3E671882F
3 changed files with 4 additions and 2 deletions

View File

@ -220,7 +220,7 @@ int map_range_in_pgtbl(vaddr_t * pgtbl, vaddr_t va, paddr_t pa,
// 创建一页 // 创建一页
cur_ptp = (ptp_t *) pgtbl; cur_ptp = (ptp_t *) pgtbl;
for (cur_level = 0; cur_level < 4; cur_level++) { for (cur_level = 0; cur_level < 4; cur_level++) {
page_type = get_next_ptp(cur_ptp, cur_level, va, &next_ptp, &entry, true); page_type = get_next_ptp(cur_ptp, cur_level, va_cur, &next_ptp, &entry, true);
if (page_type < 0) { if (page_type < 0) {
// 无法映射 // 无法映射
return page_type; return page_type;

View File

@ -220,7 +220,7 @@ int map_range_in_pgtbl(vaddr_t * pgtbl, vaddr_t va, paddr_t pa,
// 创建一页 // 创建一页
cur_ptp = (ptp_t *) pgtbl; cur_ptp = (ptp_t *) pgtbl;
for (cur_level = 0; cur_level < 4; cur_level++) { for (cur_level = 0; cur_level < 4; cur_level++) {
page_type = get_next_ptp(cur_ptp, cur_level, va, &next_ptp, &entry, true); page_type = get_next_ptp(cur_ptp, cur_level, va_cur, &next_ptp, &entry, true);
if (page_type < 0) { if (page_type < 0) {
// 无法映射 // 无法映射
return page_type; return page_type;

View File

@ -112,6 +112,8 @@ LR
没啥特别的。不过目前只实现了用户空间的 2k 页分配。 没啥特别的。不过目前只实现了用户空间的 2k 页分配。
好家伙,循环里面忘记用 va_cur 用了 va。但是测试用例竟然过了 →_
*** 练习3 *** 练习3
boot/mmu.c:L80-106 映射了 KBASE~KBASE+256M boot/mmu.c:L80-106 映射了 KBASE~KBASE+256M