Date: Fri, 30 Apr 2021 14:45:37 GMT From: Konstantin Belousov <kib@FreeBSD.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org Subject: git: 21fc6a2a10cf - main - amd64: invalidate TLB between page table update and access Message-ID: <202104301445.13UEjb0d065859@gitrepo.freebsd.org>
next in thread | raw e-mail | index | archive | help
The branch main has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=21fc6a2a10cf6fbd294decbb0001473693ec1618 commit 21fc6a2a10cf6fbd294decbb0001473693ec1618 Author: Konstantin Belousov <kib@FreeBSD.org> AuthorDate: 2021-04-16 18:28:08 +0000 Commit: Konstantin Belousov <kib@FreeBSD.org> CommitDate: 2021-04-30 14:43:45 +0000 amd64: invalidate TLB between page table update and access When setting up trampoline mapping for LA57 switcher, it is possible that TLB still has some random mapping at that address. Sponsored by: The FreeBSD Foundation MFC after: 1 week --- sys/amd64/amd64/pmap.c | 1 + 1 file changed, 1 insertion(+) diff --git a/sys/amd64/amd64/pmap.c b/sys/amd64/amd64/pmap.c index 66617bffa8df..5a6a1cee8b8c 100644 --- a/sys/amd64/amd64/pmap.c +++ b/sys/amd64/amd64/pmap.c @@ -2168,6 +2168,7 @@ pmap_bootstrap_la57(void *arg __unused) *(u_long *)(v_code + 2 + (la57_trampoline_gdt_desc - la57_trampoline)) = la57_trampoline_gdt - la57_trampoline + VM_PAGE_TO_PHYS(m_code); la57_tramp = (void (*)(uint64_t))VM_PAGE_TO_PHYS(m_code); + invlpg((vm_offset_t)la57_tramp); la57_tramp(KPML5phys); /*
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202104301445.13UEjb0d065859>