mirror of https://github.com/mkerrisk/man-pages
modify_ldt.2: Clarify the lm bit's behavior
The lm bit should never have existed in the first place. Sigh. Signed-off-by: Andy Lutomirski <luto@amacapital.net> Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
This commit is contained in:
parent
ed26cc5a2e
commit
f89f50fa38
|
@ -187,12 +187,21 @@ The normal use for
|
|||
.BR modify_ldt (2)
|
||||
is to run legacy 16-bit or segmented 32-bit code.
|
||||
Not all kernels allow 16-bit segments to be installed, however.
|
||||
.PP
|
||||
Even on 64-bit kernels,
|
||||
.BR modify_ldt (2)
|
||||
cannot be used to create a long mode (i.e. 64-bit) code segment. The
|
||||
undocumented field "lm" in
|
||||
.IR user_desc
|
||||
is not useful, and, despite its name, does not result in a long mode segment.
|
||||
.SH BUGS
|
||||
On 64-bit kernels before Linux 3.19,
|
||||
.\" commit e30ab185c490e9a9381385529e0fd32f0a399495
|
||||
setting the "lm" padding bit in
|
||||
setting the "lm" bit in
|
||||
.IR user_desc
|
||||
prevents the descriptor from being considered empty.
|
||||
prevents the descriptor from being considered empty. Keep in mind that the
|
||||
"lm" bit does not exist in the 32-bit headers, but these buggy kernels
|
||||
will still notice the bit even when set in a 32-bit process.
|
||||
.SH SEE ALSO
|
||||
.BR arch_prctl (2),
|
||||
.BR set_thread_area (2),
|
||||
|
|
Loading…
Reference in New Issue