From: Andrew Morton <[email-masked]>

arch/ppc64/kernel/built-in.o(.text+0xb88): In function `setup_system':
arch/ppc64/kernel/setup.c:577: undefined reference to `.audit_syscall_exit'

Kinda predictable :(

Cc: David Woodhouse <[email-masked]>
Signed-off-by: Andrew Morton <[email-masked]>
---

 arch/ppc64/kernel/entry.S |   11 +++++++++++
 1 files changed, 11 insertions(+)

diff -puN arch/ppc64/kernel/entry.S~git-audit-ppc64-fix arch/ppc64/kernel/entry.S
--- 25/arch/ppc64/kernel/entry.S~git-audit-ppc64-fix	2005-08-31 08:13:19.000000000 -0600
+++ 25-akpm/arch/ppc64/kernel/entry.S	2005-08-31 08:13:58.000000000 -0600
@@ -274,6 +274,7 @@ _GLOBAL(ppc64_rt_sigsuspend)
 	b	70f
 
 _GLOBAL(ppc32_rt_sigsuspend)
+#ifdef CONFIG_AUDIT
 	bl	.save_nvgprs
 	bl	.sys32_rt_sigsuspend
 70:	cmpdi	0,r3,0
@@ -290,6 +291,16 @@ _GLOBAL(ppc32_rt_sigsuspend)
 	li	r5,-4			/* It's always -EINTR */
 	bl	.audit_syscall_exit
 	b	.ret_from_except
+#else
+	bl	.save_nvgprs
+	bl	.sys32_rt_sigsuspend
+	/* If sigsuspend() returns zero, we are going into a signal handler */
+70:	cmpdi	0,r3,0
+	beq	.ret_from_except
+	/* If it returned -EINTR, we need to return via syscall_exit to set
+	   the SO bit in cr0 and potentially stop for ptrace. */
+	b	syscall_exit
+#endif
 
 _GLOBAL(ppc_fork)
 	bl	.save_nvgprs
_