Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 23 Sep 2023 01:54:35 GMT
From:      Doug Moore <dougm@FreeBSD.org>
To:        src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org
Subject:   git: d9b8e5a74805 - releng/14.0 - powerpc pmap: initialize kernel pmap radix trie
Message-ID:  <202309230154.38N1sZuZ057171@gitrepo.freebsd.org>

next in thread | raw e-mail | index | archive | help
The branch releng/14.0 has been updated by dougm:

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

commit d9b8e5a748053ed9c641b5ac3832463b6f3731ac
Author:     Doug Moore <dougm@FreeBSD.org>
AuthorDate: 2023-09-13 18:17:57 +0000
Commit:     Doug Moore <dougm@FreeBSD.org>
CommitDate: 2023-09-23 01:49:16 +0000

    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
    Differential Revision:  https://reviews.freebsd.org/D41846
    
    (cherry picked from commit 8763b9862f90dc3bdbbc5e3c2664890be7c1f0c4)
    (cherry picked from commit a4c7a3f7f56a131a74b78ac48f6533feb8ef5aae)
    
    Approved by:    re (gjb)
---
 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 32d08d2d7026..b904978e042c 100644
--- a/sys/powerpc/aim/mmu_radix.c
+++ b/sys/powerpc/aim/mmu_radix.c
@@ -1843,6 +1843,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);



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202309230154.38N1sZuZ057171>