diff --git a/arch/sparc64/mm/init.c b/arch/sparc64/mm/init.c
index 950d58082e28ffb3d3668a9fa6555ec2200a1cac..bd9e3205674b5bae4ae3bd7d55fa551d8cd6a689 100644
--- a/arch/sparc64/mm/init.c
+++ b/arch/sparc64/mm/init.c
@@ -510,6 +510,11 @@ static void __init hypervisor_tlb_lock(unsigned long vaddr,
 			       "=&r" (arg3)
 			     : "0" (func), "1" (arg0), "2" (arg1),
 			       "3" (arg2), "4" (arg3));
+	if (arg0 != 0) {
+		prom_printf("hypervisor_tlb_lock[%lx:%lx:%lx:%lx]: "
+			    "errors with %lx\n", vaddr, 0, pte, mmu, arg0);
+		prom_halt();
+	}
 }
 
 static unsigned long kern_large_tte(unsigned long paddr);