Richard Guenther wrote:
We didn't yet run into this issue and build openSUSE with 4.3
since more
than
three month.
Well, how often do you take a trap inside an overlapping memmove()?
How hard is it to change the kernel signal entry path from "pushf" to
"pushf;cld"? Problem solved, no?
The problem is with old kernels, which by definition stay unfixed.
My impression was that the problem occurs in GCC compiled code in the
kernel itself, not in user space:
1. User space has direction flag set.
2. signal occurs
3. kernel code is entered
4. kernel code does string operation <boom>
Fixing this instance of the problem by changing GCC requires (at
least) recompiling the kernel.
Changing the ABI for this seems like a pretty crazy solution to a very
minor and easily fixable kernel bug. Distros have control over what
kernels they ship, they have absolute power to ensure this doesn't
affect their users when running default kernels - without changing the
compiler.
-Chris