diff options
author | Thomas Gleixner <tglx@linutronix.de> | 2008-01-30 13:30:13 +0100 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2008-01-30 13:30:13 +0100 |
commit | 70f5088dd5e9fbd3a71b3a5b01395c676158194b (patch) | |
tree | 5d7f47f1db5c9a2da9c2a78e7fd87291e916b0bf /arch/x86/kernel/ldt_64.c | |
parent | fc2d625c4fac18e672a3b7c61af5de22d7ab7d87 (diff) | |
download | lwn-70f5088dd5e9fbd3a71b3a5b01395c676158194b.tar.gz lwn-70f5088dd5e9fbd3a71b3a5b01395c676158194b.zip |
x86: prepare arch/x86/kernel/ldt_32/64.c for merging
White space and coding style cleanups.
Change unsigned to int. There is no win when we compare mincount against pc->size,
which is an int as well. Casting pc->size to unsigned just might hide real problems.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'arch/x86/kernel/ldt_64.c')
-rw-r--r-- | arch/x86/kernel/ldt_64.c | 24 |
1 files changed, 11 insertions, 13 deletions
diff --git a/arch/x86/kernel/ldt_64.c b/arch/x86/kernel/ldt_64.c index d72dc7a0636f..95903938e7ad 100644 --- a/arch/x86/kernel/ldt_64.c +++ b/arch/x86/kernel/ldt_64.c @@ -18,7 +18,7 @@ #include <asm/system.h> #include <asm/ldt.h> #include <asm/desc.h> -#include <asm/proto.h> +#include <asm/mmu_context.h> #ifdef CONFIG_SMP static void flush_ldt(void *null) @@ -28,13 +28,12 @@ static void flush_ldt(void *null) } #endif -static int alloc_ldt(mm_context_t *pc, unsigned mincount, int reload) +static int alloc_ldt(mm_context_t *pc, int mincount, int reload) { - void *oldldt; - void *newldt; - unsigned oldsize; + void *oldldt, *newldt; + int oldsize; - if (mincount <= (unsigned)pc->size) + if (mincount <= pc->size) return 0; oldsize = pc->size; mincount = (mincount + 511) & (~511); @@ -56,13 +55,14 @@ static int alloc_ldt(mm_context_t *pc, unsigned mincount, int reload) wmb(); pc->size = mincount; wmb(); + if (reload) { #ifdef CONFIG_SMP cpumask_t mask; preempt_disable(); - mask = cpumask_of_cpu(smp_processor_id()); load_LDT(pc); + mask = cpumask_of_cpu(smp_processor_id()); if (!cpus_equal(current->mm->cpu_vm_mask, mask)) smp_call_function(flush_ldt, NULL, 1, 1); preempt_enable(); @@ -115,7 +115,7 @@ int init_new_context(struct task_struct *tsk, struct mm_struct *mm) void destroy_context(struct mm_struct *mm) { if (mm->context.size) { - if ((unsigned)mm->context.size * LDT_ENTRY_SIZE > PAGE_SIZE) + if (mm->context.size * LDT_ENTRY_SIZE > PAGE_SIZE) vfree(mm->context.ldt); else kfree(mm->context.ldt); @@ -170,18 +170,16 @@ static int read_default_ldt(void __user *ptr, unsigned long bytecount) static int write_ldt(void __user *ptr, unsigned long bytecount, int oldmode) { - struct task_struct *me = current; - struct mm_struct *mm = me->mm; + struct mm_struct *mm = current->mm; __u32 entry_1, entry_2; int error; struct user_desc ldt_info; error = -EINVAL; - if (bytecount != sizeof(ldt_info)) goto out; error = -EFAULT; - if (copy_from_user(&ldt_info, ptr, bytecount)) + if (copy_from_user(&ldt_info, ptr, sizeof(ldt_info))) goto out; error = -EINVAL; @@ -195,7 +193,7 @@ static int write_ldt(void __user *ptr, unsigned long bytecount, int oldmode) } mutex_lock(&mm->context.lock); - if (ldt_info.entry_number >= (unsigned)mm->context.size) { + if (ldt_info.entry_number >= mm->context.size) { error = alloc_ldt(¤t->mm->context, ldt_info.entry_number + 1, 1); if (error < 0) |