How is restoring ss and ds in a 64-bit process supposed to work? There's this comment:
/* Kernel saves and restores only the CS segment register on signals, * which is the bare minimum needed to allow mixed 32/64-bit code. * App's signal handler can save/restore other segments if needed. */ AFAICT this is bogus: syscall (the 64-bit version) sets regs->ss to __USER_DS. I think that the actual ss register is untouched until the syscall returns, so in theory sigreturn could copy ss to regs, but that seems kind of nasty. Can we steal __pad0 and put ss in there? --Andy -- Andy Lutomirski AMA Capital Management, LLC -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/