aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/include/asm/ldt.h
diff options
context:
space:
mode:
Diffstat (limited to 'arch/x86/include/asm/ldt.h')
-rw-r--r--arch/x86/include/asm/ldt.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/arch/x86/include/asm/ldt.h b/arch/x86/include/asm/ldt.h
index 46727eb..6e1aaf7 100644
--- a/arch/x86/include/asm/ldt.h
+++ b/arch/x86/include/asm/ldt.h
@@ -28,6 +28,13 @@ struct user_desc {
unsigned int seg_not_present:1;
unsigned int useable:1;
#ifdef __x86_64__
+ /*
+ * Because this bit is not present in 32-bit user code, user
+ * programs can pass uninitialized values here. Therefore, in
+ * any context in which a user_desc comes from a 32-bit program,
+ * the kernel must act as though lm == 0, regardless of the
+ * actual value.
+ */
unsigned int lm:1;
#endif
};