git: f6ec18e200ab - main - amd64 vm.pmap.kernel_maps: provide canonical address switch for la57

From: Konstantin Belousov <kib_at_FreeBSD.org>
Date: Tue, 22 Jul 2025 14:03:08 UTC
The branch main has been updated by kib:

URL: https://cgit.FreeBSD.org/src/commit/?id=f6ec18e200ab323d50ec8d051bda8f22f4beaf69

commit f6ec18e200ab323d50ec8d051bda8f22f4beaf69
Author:     Konstantin Belousov <kib@FreeBSD.org>
AuthorDate: 2025-07-20 13:24:11 +0000
Commit:     Konstantin Belousov <kib@FreeBSD.org>
CommitDate: 2025-07-22 13:59:10 +0000

    amd64 vm.pmap.kernel_maps: provide canonical address switch for la57
    
    Reviewed by:    markj
    Sponsored by:   The FreeBSD Foundation
    Differential revision:  https://reviews.freebsd.org/D51453
---
 sys/amd64/amd64/pmap.c | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/sys/amd64/amd64/pmap.c b/sys/amd64/amd64/pmap.c
index 9805184bd07e..6fac8318df05 100644
--- a/sys/amd64/amd64/pmap.c
+++ b/sys/amd64/amd64/pmap.c
@@ -12042,8 +12042,13 @@ sysctl_kmaps(SYSCTL_HANDLER_ARGS)
 		}
 
 		/* Convert to canonical form. */
-		if (sva == 1ul << 47)
-			sva |= -1ul << 48;
+		if (la57) {
+			if (sva == 1ul << 56)
+				sva |= -1ul << 57;
+		} else {
+			if (sva == 1ul << 47)
+				sva |= -1ul << 48;
+		}
 
 restart:
 		pml4e = kernel_pml4[i];