diff options
author | Daniel Walker <dwalker@mvista.com> | 2008-02-05 01:31:26 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2008-02-05 12:44:31 -0500 |
commit | 01ac835fdd121f36dded404af15225101f6ccee3 (patch) | |
tree | 7c147e37003fdad5525ce4b036917a29d9cdd1a2 | |
parent | 2278c5ac9d39699bac44250b9c532de0c02cb16a (diff) |
uml: LDT mutex conversion
The ldt.semaphore conforms to the new struct mutex requirments, so I converted
it to use the new API and changed the name.
Signed-off-by: Daniel Walker <dwalker@mvista.com>
Signed-off-by: Jeff Dike <jdike@linux.intel.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-rw-r--r-- | arch/um/sys-i386/ldt.c | 14 | ||||
-rw-r--r-- | include/asm-um/ldt.h | 4 |
2 files changed, 9 insertions, 9 deletions
diff --git a/arch/um/sys-i386/ldt.c b/arch/um/sys-i386/ldt.c index 505ed5c9a68d..a34263e6b08d 100644 --- a/arch/um/sys-i386/ldt.c +++ b/arch/um/sys-i386/ldt.c | |||
@@ -147,7 +147,7 @@ static int read_ldt(void __user * ptr, unsigned long bytecount) | |||
147 | if (ptrace_ldt) | 147 | if (ptrace_ldt) |
148 | return read_ldt_from_host(ptr, bytecount); | 148 | return read_ldt_from_host(ptr, bytecount); |
149 | 149 | ||
150 | down(&ldt->semaphore); | 150 | mutex_lock(&ldt->lock); |
151 | if (ldt->entry_count <= LDT_DIRECT_ENTRIES) { | 151 | if (ldt->entry_count <= LDT_DIRECT_ENTRIES) { |
152 | size = LDT_ENTRY_SIZE*LDT_DIRECT_ENTRIES; | 152 | size = LDT_ENTRY_SIZE*LDT_DIRECT_ENTRIES; |
153 | if (size > bytecount) | 153 | if (size > bytecount) |
@@ -171,7 +171,7 @@ static int read_ldt(void __user * ptr, unsigned long bytecount) | |||
171 | ptr += size; | 171 | ptr += size; |
172 | } | 172 | } |
173 | } | 173 | } |
174 | up(&ldt->semaphore); | 174 | mutex_unlock(&ldt->lock); |
175 | 175 | ||
176 | if (bytecount == 0 || err == -EFAULT) | 176 | if (bytecount == 0 || err == -EFAULT) |
177 | goto out; | 177 | goto out; |
@@ -229,7 +229,7 @@ static int write_ldt(void __user * ptr, unsigned long bytecount, int func) | |||
229 | } | 229 | } |
230 | 230 | ||
231 | if (!ptrace_ldt) | 231 | if (!ptrace_ldt) |
232 | down(&ldt->semaphore); | 232 | mutex_lock(&ldt->lock); |
233 | 233 | ||
234 | err = write_ldt_entry(mm_idp, func, &ldt_info, &addr, 1); | 234 | err = write_ldt_entry(mm_idp, func, &ldt_info, &addr, 1); |
235 | if (err) | 235 | if (err) |
@@ -289,7 +289,7 @@ static int write_ldt(void __user * ptr, unsigned long bytecount, int func) | |||
289 | err = 0; | 289 | err = 0; |
290 | 290 | ||
291 | out_unlock: | 291 | out_unlock: |
292 | up(&ldt->semaphore); | 292 | mutex_unlock(&ldt->lock); |
293 | out: | 293 | out: |
294 | return err; | 294 | return err; |
295 | } | 295 | } |
@@ -396,7 +396,7 @@ long init_new_ldt(struct mm_context *new_mm, struct mm_context *from_mm) | |||
396 | 396 | ||
397 | 397 | ||
398 | if (!ptrace_ldt) | 398 | if (!ptrace_ldt) |
399 | init_MUTEX(&new_mm->ldt.semaphore); | 399 | mutex_init(&new_mm->ldt.lock); |
400 | 400 | ||
401 | if (!from_mm) { | 401 | if (!from_mm) { |
402 | memset(&desc, 0, sizeof(desc)); | 402 | memset(&desc, 0, sizeof(desc)); |
@@ -456,7 +456,7 @@ long init_new_ldt(struct mm_context *new_mm, struct mm_context *from_mm) | |||
456 | * i.e., we have to use the stub for modify_ldt, which | 456 | * i.e., we have to use the stub for modify_ldt, which |
457 | * can't handle the big read buffer of up to 64kB. | 457 | * can't handle the big read buffer of up to 64kB. |
458 | */ | 458 | */ |
459 | down(&from_mm->ldt.semaphore); | 459 | mutex_lock(&from_mm->ldt.lock); |
460 | if (from_mm->ldt.entry_count <= LDT_DIRECT_ENTRIES) | 460 | if (from_mm->ldt.entry_count <= LDT_DIRECT_ENTRIES) |
461 | memcpy(new_mm->ldt.u.entries, from_mm->ldt.u.entries, | 461 | memcpy(new_mm->ldt.u.entries, from_mm->ldt.u.entries, |
462 | sizeof(new_mm->ldt.u.entries)); | 462 | sizeof(new_mm->ldt.u.entries)); |
@@ -475,7 +475,7 @@ long init_new_ldt(struct mm_context *new_mm, struct mm_context *from_mm) | |||
475 | } | 475 | } |
476 | } | 476 | } |
477 | new_mm->ldt.entry_count = from_mm->ldt.entry_count; | 477 | new_mm->ldt.entry_count = from_mm->ldt.entry_count; |
478 | up(&from_mm->ldt.semaphore); | 478 | mutex_unlock(&from_mm->ldt.lock); |
479 | } | 479 | } |
480 | 480 | ||
481 | out: | 481 | out: |
diff --git a/include/asm-um/ldt.h b/include/asm-um/ldt.h index b2553f3e87eb..52af512f5e7d 100644 --- a/include/asm-um/ldt.h +++ b/include/asm-um/ldt.h | |||
@@ -8,7 +8,7 @@ | |||
8 | #ifndef __ASM_LDT_H | 8 | #ifndef __ASM_LDT_H |
9 | #define __ASM_LDT_H | 9 | #define __ASM_LDT_H |
10 | 10 | ||
11 | #include "asm/semaphore.h" | 11 | #include <linux/mutex.h> |
12 | #include "asm/host_ldt.h" | 12 | #include "asm/host_ldt.h" |
13 | 13 | ||
14 | extern void ldt_host_info(void); | 14 | extern void ldt_host_info(void); |
@@ -27,7 +27,7 @@ struct ldt_entry { | |||
27 | 27 | ||
28 | typedef struct uml_ldt { | 28 | typedef struct uml_ldt { |
29 | int entry_count; | 29 | int entry_count; |
30 | struct semaphore semaphore; | 30 | struct mutex lock; |
31 | union { | 31 | union { |
32 | struct ldt_entry * pages[LDT_PAGES_MAX]; | 32 | struct ldt_entry * pages[LDT_PAGES_MAX]; |
33 | struct ldt_entry entries[LDT_DIRECT_ENTRIES]; | 33 | struct ldt_entry entries[LDT_DIRECT_ENTRIES]; |