x86_64: convert mm_context_t semaphore to a mutex
PATCH 1/1 x86_64: convert mm_context_t semaphore to a mutex
Signed-off-by Luiz Fernando N. Capitulino <[email protected]>
--- arch/x86_64/kernel/ldt.c | 14 +++++++------- arch/x86_64/kernel/ptrace.c | 4 ++-- include/asm-x86_64/mmu.h | 4 ++-- 3 files changed, 11 insertions(+), 11 deletions(-)
arch/x86_64/kernel/ldt.c +7 -7
@@ -98,13 +98,13 @@ int init_new_context(struct task_structstruct mm_struct * old_mm;int retval =0 ; -init_MUTEX (&mm->context.sem); +mutex_init (&mm->context.lock); mm->context.size =0 ; old_mm = current->mm;if (old_mm && old_mm->context.size >0 ) { -down (&old_mm->context.sem); +mutex_lock (&old_mm->context.lock); retval =copy_ldt (&mm->context, &old_mm->context); -up (&old_mm->context.sem); +mutex_unlock (&old_mm->context.lock); }return retval; }
@@ -135,7 +135,7 @@ static int read_ldt(void __user * ptr, uif (bytecount >LDT_ENTRY_SIZE *LDT_ENTRIES ) bytecount =LDT_ENTRY_SIZE *LDT_ENTRIES ; -down (&mm->context.sem); +mutex_lock (&mm->context.lock); size = mm->context.size*LDT_ENTRY_SIZE ;if (size > bytecount) size = bytecount;
@@ -143,7 +143,7 @@ static int read_ldt(void __user * ptr, u err =0 ;if (copy_to_user (ptr, mm->context.ldt, size)) err = -EFAULT ; -up (&mm->context.sem); +mutex_unlock (&mm->context.lock);if (err <0 ) goto error_return;if (size != bytecount) {
@@ -195,7 +195,7 @@ static int write_ldt(void __user * ptr, goto out; } -down (&mm->context.sem); +mutex_lock (&mm->context.lock);if (ldt_info.entry_number >= (unsigned )mm->context.size) { error =alloc_ldt (¤t->mm->context, ldt_info.entry_number+1 ,1 );if (error <0 )
@@ -225,7 +225,7 @@ install: error =0 ; out_unlock: -up (&mm->context.sem); +mutex_unlock (&mm->context.lock); out:return error; }
arch/x86_64/kernel/ptrace.c +2 -2
@@ -104,7 +104,7 @@ unsigned long convert_rip_to_linear(stru seg &= ~7UL ; -down (&child->mm->context.sem); +mutex_lock (&child->mm->context.lock);if (unlikely ((seg >>3 ) >= child->mm->context.size)) addr =-1L ;/* bogus selector, access would fault */ else {
@@ -118,7 +118,7 @@ unsigned long convert_rip_to_linear(stru addr &=0xffff ; addr += base; } -up (&child->mm->context.sem); +mutex_unlock (&child->mm->context.lock); }return addr;
include/asm-x86_64/mmu.h +2 -2
@@ -2,7 +2,7 @@#define __x86_64_MMU_H#include <linux/spinlock.h> -#include <asm/semaphore.h> +#include <linux/mutex.h> /* * The x86_64 doesn't have a mmu context, but
@@ -14,7 +14,7 @@ typedef struct {void *ldt;rwlock_t ldtlock;int size; -struct semaphore sem; +struct mutex lock;void *vdso; } mm_context_t;
Signature · 1 line
Luiz Fernando N. Capitulino