On Thu, Aug 13, 2015 at 9:34 AM, Linus Torvalds <torva...@linux-foundation.org> wrote: > > Are you sure? From the description by Stas, the problem is literally > the *restoring* action of the sigcontext, and trying to restore a SS > value that is no longer valid. > > "The crash happens when DOS program terminates. > At that point dosemu subverts the execution flow by > replacing segregs and cs/ip ss/sp in sigcontext with its own. > But __pad0 still has DOS SS, which crash because (presumably) > the DOS LDT have been just removed"
Side note: if this is the main issue, and the problem is the "iret" faulting when trying to restore SS (and causing an unexpected SIGSEGV that dosemu crashes on), then an alternate model might be to keep the save/restore SS code, but do a "VERW" on the SS descriptor in restore_sigcontext(), and silently just replacing it with __USER_DS if that fails. Linus -- 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/