Merge tag 'powerpc-6.6-5' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux

Pull powerpc fixes from Michael Ellerman:

- Fix stale propagated yield_cpu in qspinlocks leading to lockups

- Fix broken hugepages on some configs due to ARCH_FORCE_MAX_ORDER

- Fix a spurious warning when copros are in use at exit time

Thanks to Nicholas Piggin, Christophe Leroy, Nysal Jan K.A Sachin Sant,
and Shrikanth Hegde.

* tag 'powerpc-6.6-5' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux:
powerpc/qspinlock: Fix stale propagated yield_cpu
powerpc/64s/radix: Don't warn on copros in radix__tlb_flush()
powerpc/mm: Allow ARCH_FORCE_MAX_ORDER up to 12

Changed files
+5 -9
arch
powerpc
lib
mm
book3s64
+1 -1
arch/powerpc/Kconfig
··· 910 910 default "6" if PPC32 && PPC_64K_PAGES 911 911 range 4 10 if PPC32 && PPC_256K_PAGES 912 912 default "4" if PPC32 && PPC_256K_PAGES 913 - range 10 10 913 + range 10 12 914 914 default "10" 915 915 help 916 916 The kernel page allocator limits the size of maximal physically
+3
arch/powerpc/lib/qspinlock.c
··· 406 406 if ((yield_count & 1) == 0) 407 407 goto yield_prev; /* owner vcpu is running */ 408 408 409 + if (get_owner_cpu(READ_ONCE(lock->val)) != yield_cpu) 410 + goto yield_prev; /* re-sample lock owner */ 411 + 409 412 spin_end(); 410 413 411 414 preempted = true;
+1 -8
arch/powerpc/mm/book3s64/radix_tlb.c
··· 1212 1212 1213 1213 smp_mb(); /* see radix__flush_tlb_mm */ 1214 1214 exit_flush_lazy_tlbs(mm); 1215 - _tlbiel_pid(mm->context.id, RIC_FLUSH_ALL); 1216 - 1217 - /* 1218 - * It should not be possible to have coprocessors still 1219 - * attached here. 1220 - */ 1221 - if (WARN_ON_ONCE(atomic_read(&mm->context.copros) > 0)) 1222 - __flush_all_mm(mm, true); 1215 + __flush_all_mm(mm, true); 1223 1216 1224 1217 preempt_enable(); 1225 1218 } else {