In function slb_alloc_user_cache(), the uma_zalloc is called with flag M_ZERO. It should be M_WAITOK | M_ZERO instead.
The following message is seen in a pseries VM with "radix_mmu=0":
uma_zalloc* called with bad WAIT flags: #0 0xc000000000c0eae8 at uma_zalloc_debug+0x10c #1 0xc000000000c0e31c at uma_zalloc_arg+0x54 #2 0xc000000000cc0778 at slb_alloc_user_cache+0x2c #3 0xc000000000ca97c4 at moea64_pinit+0x3c #4 0xc000000000c2c1b8 at vmspace_fork+0xa8 #5 0xc0000000007e2768 at fork1+0x53c #6 0xc0000000007e21e4 at sys_fork+0x5c #7 0xc000000000d02f40 at syscall+0x194 #8 0xc000000000d02784 at trap+0x5e8 #9 0xc000000000cf685c at powerpc_interrupt+0x1cc