mirror of
https://github.com/torvalds/linux.git
synced 2026-05-28 17:13:52 +02:00
x86: fix initialization of 'l' bit in ldt descriptors
Make sure that fill_ldt() initializes the 'l' bit in the descriptor. It always sets it to 0, ignoring 'lm' in user_desc, preserving original x86_64 behaviour. Previously it was leaving 'l' uninitialized. Signed-off-by: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com> Cc: Glauber de Oliveira Costa <gcosta@redhat.com> Signed-off-by: Ingo Molnar <mingo@elte.hu> Cc: Glauber de Oliveira Costa <gcosta@redhat.com>
This commit is contained in:
parent
b56afe1d41
commit
64f53a0492
|
|
@ -24,6 +24,11 @@ static inline void fill_ldt(struct desc_struct *desc,
|
|||
desc->d = info->seg_32bit;
|
||||
desc->g = info->limit_in_pages;
|
||||
desc->base2 = (info->base_addr & 0xff000000) >> 24;
|
||||
/*
|
||||
* Don't allow setting of the lm bit. It is useless anyway
|
||||
* because 64bit system calls require __USER_CS:
|
||||
*/
|
||||
desc->l = 0;
|
||||
}
|
||||
|
||||
extern struct desc_ptr idt_descr;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user