signal/ia64: Replace FPE_FIXME with FPE_FLTUNK
Using an si_code of 0 that aliases with SI_USER is clearly the wrong thing todo, and causes problems in interesting ways. The newly defined FPE_FLTUNK semantically appears to fit the bill so use it instead. Given recent experience in this area odds are it will not break anything. Fixing it removes a hazard to kernel maintenance. Cc: Tony Luck <tony.luck@intel.com> Cc: Fenghua Yu <fenghua.yu@intel.com> Cc: linux-ia64@vger.kernel.org Fixes: 987159266c45 ("Linux version 2.3.48") Signed-off-by: "Eric W. Biederman" <ebiederm@xmission.com>
This commit is contained in:
parent
4cc13e4f6d
commit
51dd709fee
|
@ -27,11 +27,4 @@
|
|||
#define __ISR_VALID_BIT 0
|
||||
#define __ISR_VALID (1 << __ISR_VALID_BIT)
|
||||
|
||||
/*
|
||||
* SIGFPE si_codes
|
||||
*/
|
||||
#ifdef __KERNEL__
|
||||
#define FPE_FIXME 0 /* Broken dup of SI_USER */
|
||||
#endif /* __KERNEL__ */
|
||||
|
||||
#endif /* _UAPI_ASM_IA64_SIGINFO_H */
|
||||
|
|
|
@ -353,7 +353,7 @@ handle_fpu_swa (int fp_fault, struct pt_regs *regs, unsigned long isr)
|
|||
clear_siginfo(&siginfo);
|
||||
siginfo.si_signo = SIGFPE;
|
||||
siginfo.si_errno = 0;
|
||||
siginfo.si_code = FPE_FIXME; /* default code */
|
||||
siginfo.si_code = FPE_FLTUNK; /* default code */
|
||||
siginfo.si_addr = (void __user *) (regs->cr_iip + ia64_psr(regs)->ri);
|
||||
if (isr & 0x11) {
|
||||
siginfo.si_code = FPE_FLTINV;
|
||||
|
@ -380,7 +380,7 @@ handle_fpu_swa (int fp_fault, struct pt_regs *regs, unsigned long isr)
|
|||
clear_siginfo(&siginfo);
|
||||
siginfo.si_signo = SIGFPE;
|
||||
siginfo.si_errno = 0;
|
||||
siginfo.si_code = FPE_FIXME; /* default code */
|
||||
siginfo.si_code = FPE_FLTUNK; /* default code */
|
||||
siginfo.si_addr = (void __user *) (regs->cr_iip + ia64_psr(regs)->ri);
|
||||
if (isr & 0x880) {
|
||||
siginfo.si_code = FPE_FLTOVF;
|
||||
|
|
Loading…
Reference in New Issue