aboutsummaryrefslogtreecommitdiffstats
path: root/arch/powerpc/kernel/traps.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/powerpc/kernel/traps.c')
-rw-r--r--arch/powerpc/kernel/traps.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/arch/powerpc/kernel/traps.c b/arch/powerpc/kernel/traps.c
index 5a49eabd492e..2f1857c9819f 100644
--- a/arch/powerpc/kernel/traps.c
+++ b/arch/powerpc/kernel/traps.c
@@ -906,7 +906,9 @@ void SoftwareEmulation(struct pt_regs *regs)
906{ 906{
907 extern int do_mathemu(struct pt_regs *); 907 extern int do_mathemu(struct pt_regs *);
908 extern int Soft_emulate_8xx(struct pt_regs *); 908 extern int Soft_emulate_8xx(struct pt_regs *);
909#if defined(CONFIG_MATH_EMULATION) || defined(CONFIG_8XX_MINIMAL_FPEMU)
909 int errcode; 910 int errcode;
911#endif
910 912
911 CHECK_FULL_REGS(regs); 913 CHECK_FULL_REGS(regs);
912 914
@@ -936,7 +938,7 @@ void SoftwareEmulation(struct pt_regs *regs)
936 return; 938 return;
937 } 939 }
938 940
939#else 941#elif defined(CONFIG_8XX_MINIMAL_FPEMU)
940 errcode = Soft_emulate_8xx(regs); 942 errcode = Soft_emulate_8xx(regs);
941 switch (errcode) { 943 switch (errcode) {
942 case 0: 944 case 0:
@@ -949,6 +951,8 @@ void SoftwareEmulation(struct pt_regs *regs)
949 _exception(SIGSEGV, regs, SEGV_MAPERR, regs->nip); 951 _exception(SIGSEGV, regs, SEGV_MAPERR, regs->nip);
950 return; 952 return;
951 } 953 }
954#else
955 _exception(SIGILL, regs, ILL_ILLOPC, regs->nip);
952#endif 956#endif
953} 957}
954#endif /* CONFIG_8xx */ 958#endif /* CONFIG_8xx */