diff --git a/sys/powerpc/booke/trap_subr.S b/sys/powerpc/booke/trap_subr.S
index cf2ce06b84e2..7ecd67324d85 100644
--- a/sys/powerpc/booke/trap_subr.S
+++ b/sys/powerpc/booke/trap_subr.S
@@ -365,14 +365,14 @@
 	ld	%r30, (TLBSAVE_BOOKE_R30)(br);				\
 	ld	%r31, (TLBSAVE_BOOKE_R31)(br);				
 #define TLB_NEST(outr,inr)						\
-	rlwinm	outr, inr, 7, 22, 24;	/* 8 x TLBSAVE_LEN */
+	rlwinm	outr, inr, 7, 23, 24;	/* 8 x TLBSAVE_LEN */
 #else
 #define TLB_SAVE_REGS(br)						\
 	stmw	%r20, TLBSAVE_BOOKE_R20(br)
 #define TLB_RESTORE_REGS(br)						\
 	lmw	%r20, TLBSAVE_BOOKE_R20(br)
 #define TLB_NEST(outr,inr)						\
-	rlwinm	outr, inr, 6, 23, 25;	/* 4 x TLBSAVE_LEN */
+	rlwinm	outr, inr, 6, 24, 25;	/* 4 x TLBSAVE_LEN */
 #endif
 #define TLB_PROLOG							\
 	mtspr	SPR_SPRG4, %r1;			/* Save SP */		\
diff --git a/sys/powerpc/include/pcpu.h b/sys/powerpc/include/pcpu.h
index 48bc4a3f6d7a..9ac323801106 100644
--- a/sys/powerpc/include/pcpu.h
+++ b/sys/powerpc/include/pcpu.h
@@ -77,14 +77,14 @@ struct pvo_entry;
 #endif
 
 #define	BOOKE_CRITSAVE_LEN	(CPUSAVE_LEN + 2)
-#define	BOOKE_TLB_MAXNEST	3
+#define	BOOKE_TLB_MAXNEST	4
 #define	BOOKE_TLB_SAVELEN	16
 #define	BOOKE_TLBSAVE_LEN	(BOOKE_TLB_SAVELEN * BOOKE_TLB_MAXNEST)
 
 #ifdef __powerpc64__
 #define	BOOKE_PCPU_PAD	901
 #else
-#define	BOOKE_PCPU_PAD	429
+#define	BOOKE_PCPU_PAD	365
 #endif
 #define PCPU_MD_BOOKE_FIELDS						\
 	register_t	critsave[BOOKE_CRITSAVE_LEN];		\