aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Johnston <markj@FreeBSD.org>2021-02-22 20:50:09 +0000
committerMark Johnston <markj@FreeBSD.org>2021-02-25 15:54:17 +0000
commit5ad3a9988cc89e41f4c471d7ca5d8b19d216144f (patch)
treede623e4a0b733a319c0b4b474edcd6fa4a369920
parent8305d6906fe983ae470184127b5e42cc6f91493a (diff)
downloadsrc-5ad3a9988cc89e41f4c471d7ca5d8b19d216144f.tar.gz
src-5ad3a9988cc89e41f4c471d7ca5d8b19d216144f.zip
vm_kern: Avoid sign extension in the KVA_QUANTUM definition
Otherwise, on a powerpc64 NUMA system with hashed page tables, the first-level superpage reservation size is large enough that the value of the kernel KVA arena import quantum, KVA_NUMA_IMPORT_QUANTUM, is negative and gets sign-extended when passed to vmem_set_import(). This results in a boot-time hang on such platforms. Approved by: re (gjb) Reported by: bdragon (cherry picked from commit 23e875fd97fb9f17b3f5dc2b26082f25e1a86b6f) (cherry picked from commit 0486986ad81dbbfca291acf5b15f94d67d8a61bd)
-rw-r--r--sys/vm/vm_kern.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/sys/vm/vm_kern.c b/sys/vm/vm_kern.c
index f1704f834157..0677d901d408 100644
--- a/sys/vm/vm_kern.c
+++ b/sys/vm/vm_kern.c
@@ -127,7 +127,7 @@ SYSCTL_ULONG(_vm, OID_AUTO, max_kernel_address, CTLFLAG_RD,
/* On non-superpage architectures we want large import sizes. */
#define KVA_QUANTUM_SHIFT (8 + PAGE_SHIFT)
#endif
-#define KVA_QUANTUM (1 << KVA_QUANTUM_SHIFT)
+#define KVA_QUANTUM (1ul << KVA_QUANTUM_SHIFT)
#define KVA_NUMA_IMPORT_QUANTUM (KVA_QUANTUM * 128)
extern void uma_startup2(void);