If an application takes an unaligned trap on a "rotating" register inside a software pipelined loop[1], then the kernel will use the wrong register when it fixes the fault. This results in corrupted memory or register depending on whether the unaligned reference was a store or a load respectively. Attached is a patch to fix this (both for the integer case, which was the one actually reported to me, and the floating point case too). Patch is against 2.4.10. -Tony Luck [1] Don't ask me why someone would go through all the effort of writing a s/w pipelined loop, but not check for unaligned access, I don't understand it either ... but they did.