diff options
author | Jeremy Fitzhardinge <jeremy@goop.org> | 2006-12-07 02:14:01 +0100 |
---|---|---|
committer | Andi Kleen <andi@basil.nowhere.org> | 2006-12-07 02:14:01 +0100 |
commit | e5e3a0428968dcc1f9318ce1c941a918e99f8b84 (patch) | |
tree | fa2dcb620a22ba197371ac08944628993958ba1e /arch/i386/kernel/ldt.c | |
parent | e2764a1e306c986053a52b33748c33463cf888de (diff) | |
download | talos-op-linux-e5e3a0428968dcc1f9318ce1c941a918e99f8b84.tar.gz talos-op-linux-e5e3a0428968dcc1f9318ce1c941a918e99f8b84.zip |
[PATCH] i386: remove default_ldt, and simplify ldt-setting.
This patch removes the default_ldt[] array, as it has been unused since
iBCS stopped being supported. This means it is now possible to actually
set an empty LDT segment.
In order to deal with this, the set_ldt_desc/load_LDT pair has been
replaced with a single set_ldt() operation which is responsible for both
setting up the LDT descriptor in the GDT, and reloading the LDT register.
If there are no LDT entries, the LDT register is loaded with a NULL
descriptor.
Signed-off-by: Jeremy Fitzhardinge <jeremy@xensource.com>
Signed-off-by: Andi Kleen <ak@suse.de>
Cc: Andi Kleen <ak@suse.de>
Acked-by: Zachary Amsden <zach@vmware.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Diffstat (limited to 'arch/i386/kernel/ldt.c')
-rw-r--r-- | arch/i386/kernel/ldt.c | 4 |
1 files changed, 1 insertions, 3 deletions
diff --git a/arch/i386/kernel/ldt.c b/arch/i386/kernel/ldt.c index 445211eb2d57..b410e5fb034f 100644 --- a/arch/i386/kernel/ldt.c +++ b/arch/i386/kernel/ldt.c @@ -160,16 +160,14 @@ static int read_default_ldt(void __user * ptr, unsigned long bytecount) { int err; unsigned long size; - void *address; err = 0; - address = &default_ldt[0]; size = 5*sizeof(struct desc_struct); if (size > bytecount) size = bytecount; err = size; - if (copy_to_user(ptr, address, size)) + if (clear_user(ptr, size)) err = -EFAULT; return err; |