diff options
author | Mark Johnston <markj@FreeBSD.org> | 2021-02-22 20:50:09 +0000 |
---|---|---|
committer | Mark Johnston <markj@FreeBSD.org> | 2021-02-25 13:56:54 +0000 |
commit | 0486986ad81dbbfca291acf5b15f94d67d8a61bd (patch) | |
tree | c37cf710a4991034c385cc6124e6c6dd4d5cda5f | |
parent | 66308a13dddcf4282521c044ee668c15a638cdd6 (diff) | |
download | src-0486986ad81dbbfca291acf5b15f94d67d8a61bd.tar.gz src-0486986ad81dbbfca291acf5b15f94d67d8a61bd.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.
Reported by: bdragon
(cherry picked from commit 23e875fd97fb9f17b3f5dc2b26082f25e1a86b6f)
-rw-r--r-- | sys/vm/vm_kern.c | 2 |
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); |