Hi,
Erhard Furtner <erhar...@mailbox.org> writes: > Greetings! > > Kernel 6.5.5 boots fine on my PowerMac G5 11,2 but kernel 6.6-rc3 fails to > boot with following dmesg shown on the OpenFirmware console (transcribed > screenshot): > I bisected the issue and got 9fee28baa601f4dbf869b1373183b312d2d5ef3d as 1st > bad commit: > Can you check this change? diff --git a/arch/powerpc/mm/pgtable.c b/arch/powerpc/mm/pgtable.c index 3ba9fe411604..6d144fedd557 100644 --- a/arch/powerpc/mm/pgtable.c +++ b/arch/powerpc/mm/pgtable.c @@ -187,8 +187,8 @@ static pte_t set_access_flags_filter(pte_t pte, struct vm_area_struct *vma, /* * set_pte stores a linux PTE into the linux page table. */ -void set_ptes(struct mm_struct *mm, unsigned long addr, pte_t *ptep, - pte_t pte, unsigned int nr) +static void set_pte_at(struct mm_struct *mm, unsigned long addr, pte_t *ptep, + pte_t pte) { /* * Make sure hardware valid bit is not set. We don't do @@ -203,16 +203,23 @@ void set_ptes(struct mm_struct *mm, unsigned long addr, pte_t *ptep, pte = set_pte_filter(pte); /* Perform the setting of the PTE */ - arch_enter_lazy_mmu_mode(); + __set_pte_at(mm, addr, ptep, pte, 0); +} + +/* + * set_pte stores a linux PTE into the linux page table. + */ +void set_ptes(struct mm_struct *mm, unsigned long addr, pte_t *ptep, + pte_t pte, unsigned int nr) +{ + /* Perform the setting of the PTE */ for (;;) { - __set_pte_at(mm, addr, ptep, pte, 0); + set_pte_at(mm, addr, ptep, pte); if (--nr == 0) break; ptep++; - pte = __pte(pte_val(pte) + (1UL << PTE_RPN_SHIFT)); addr += PAGE_SIZE; } - arch_leave_lazy_mmu_mode(); } void unmap_kernel_page(unsigned long va)