Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge tag 'parisc-for-6.15-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux

Pull parisc fix from Helge Deller:
"Fix a double SIGFPE crash"

* tag 'parisc-for-6.15-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux:
parisc: Fix double SIGFPE crash

+13 -3
+13 -3
arch/parisc/math-emu/driver.c
··· 97 97 98 98 memcpy(regs->fr, frcopy, sizeof regs->fr); 99 99 if (signalcode != 0) { 100 - force_sig_fault(signalcode >> 24, signalcode & 0xffffff, 101 - (void __user *) regs->iaoq[0]); 102 - return -1; 100 + int sig = signalcode >> 24; 101 + 102 + if (sig == SIGFPE) { 103 + /* 104 + * Clear floating point trap bit to avoid trapping 105 + * again on the first floating-point instruction in 106 + * the userspace signal handler. 107 + */ 108 + regs->fr[0] &= ~(1ULL << 38); 109 + } 110 + force_sig_fault(sig, signalcode & 0xffffff, 111 + (void __user *) regs->iaoq[0]); 112 + return -1; 103 113 } 104 114 105 115 return signalcode ? -1 : 0;