git: 34516d4ad19b - main - amd64 pti init: fix calculation of the kernel text start
Konstantin Belousov
kib at FreeBSD.org
Sat Jul 24 15:53:07 UTC 2021
The branch main has been updated by kib:
URL: https://cgit.FreeBSD.org/src/commit/?id=34516d4ad19b83e5dfe6ec8c1db232c422d7ecff
commit 34516d4ad19b83e5dfe6ec8c1db232c422d7ecff
Author: Konstantin Belousov <kib at FreeBSD.org>
AuthorDate: 2021-07-10 19:51:16 +0000
Commit: Konstantin Belousov <kib at FreeBSD.org>
CommitDate: 2021-07-24 15:52:44 +0000
amd64 pti init: fix calculation of the kernel text start
Old expression happens to provide the correct answer, but assumes that
kernel is loaded at physical address zero, with 2M gap. Do not use
kernphys to calculate KVA of kernel text start, just explicitly write
out KERNBASE and the hole size.
Reviewed by: markj
Sponsored by: The FreeBSD Foundation
MFC after: 1 week
Differential revision: https://reviews.freebsd.org/D31121
---
sys/amd64/amd64/pmap.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/sys/amd64/amd64/pmap.c b/sys/amd64/amd64/pmap.c
index 688412594e6c..03436a60a10b 100644
--- a/sys/amd64/amd64/pmap.c
+++ b/sys/amd64/amd64/pmap.c
@@ -10762,7 +10762,7 @@ pmap_pti_init(void)
va = __pcpu[i].pc_common_tss.tss_ist4 + sizeof(struct nmi_pcpu);
pmap_pti_add_kva_locked(va - DBG_STACK_SIZE, va, false);
}
- pmap_pti_add_kva_locked((vm_offset_t)kernphys + KERNBASE,
+ pmap_pti_add_kva_locked((vm_offset_t)KERNBASE + NBPDR,
(vm_offset_t)etext, true);
pti_finalized = true;
VM_OBJECT_WUNLOCK(pti_obj);
More information about the dev-commits-src-all
mailing list