HomeFreeBSD

Change the way the lcall $7,$0 is reflected to usermode. Instead of

Description

Change the way the lcall $7,$0 is reflected to usermode. Instead of
setting call gate, which must be 64 bit, put a code segment descriptor
into ldt slot 0.

This way, syscall shim does not switch temporary to 64bit trampoline,
and does not create a window where signal delivery interrupts 64 bit
mode (signal handler cannot return). The cost is shim running with
non-zero based segment in %cs, which requires vfork() handling make
more assumptions.

Sponsored by: The FreeBSD Foundation
MFC after: 1 week

Details

Provenance
kibAuthored on Dec 27 2014, 11:19 PM
Parents
rGdcf83ff0e9e9: Improve/fix interrupt allocation/setup/release:
Branches
Unknown
Tags
Unknown

Event Timeline