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:
Andy Lutomirski 2015-02-04 13:53:26 -08:00 committed by Michael Kerrisk
parent ed26cc5a2e
commit f89f50fa38
1 changed files with 11 additions and 2 deletions

View File

@ -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),