From 8763b9862f90dc3bdbbc5e3c2664890be7c1f0c4 Mon Sep 17 00:00:00 2001 From: Doug Moore Date: Wed, 13 Sep 2023 13:17:57 -0500 Subject: [PATCH] powerpc pmap: initialize kernel pmap radix trie Commit 2d2bcba7ba70141388729ed49674b36fd01146c5 changed radix trie implementation and made it necessary that radix tries be initialized with vm_radix_init. @dbaio reports that in some configurations, there is a powerpc boot panic and that this commit introduced the problem. In powerpc/aim/mmu_radix.c, the radix trie in kernel_pmap is initialized by zeroing all its fields. Add a call to vm_radix_init to properly initialize kernel_pmap->pm_radix. Reported by: dbaio Reviewed by: alc, jhibbits Fixes: 2d2bcba7ba drop NULL check from radix trie search MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D41846 --- sys/powerpc/aim/mmu_radix.c | 1 + 1 file changed, 1 insertion(+) diff --git a/sys/powerpc/aim/mmu_radix.c b/sys/powerpc/aim/mmu_radix.c index 9c5b67121803..e26508a3bddf 100644 --- a/sys/powerpc/aim/mmu_radix.c +++ b/sys/powerpc/aim/mmu_radix.c @@ -1844,6 +1844,7 @@ mmu_radix_setup_pagetables(vm_size_t hwphyssz) bzero(kernel_pmap, sizeof(struct pmap)); PMAP_LOCK_INIT(kernel_pmap); + vm_radix_init(&kernel_pmap->pm_radix); ptpages = allocpages(3); l1phys = moea64_bootstrap_alloc(RADIX_PGD_SIZE, RADIX_PGD_SIZE);