diff options
author | Ingo Molnar <mingo@elte.hu> | 2006-03-26 04:37:14 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-03-26 11:56:55 -0500 |
commit | 14cc3e2b633bb64063698980974df4535368e98f (patch) | |
tree | d542c9db7376de199d640b8e34d5630460b217b5 /arch | |
parent | 353ab6e97b8f209dbecc9f650f1f84e3da2a7bb1 (diff) |
[PATCH] sem2mutex: misc static one-file mutexes
Semaphore to mutex conversion.
The conversion was generated via scripts, and the result was validated
automatically via a script as well.
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Cc: Dave Jones <davej@codemonkey.org.uk>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Ralf Baechle <ralf@linux-mips.org>
Cc: Jens Axboe <axboe@suse.de>
Cc: Neil Brown <neilb@cse.unsw.edu.au>
Acked-by: Alasdair G Kergon <agk@redhat.com>
Cc: Greg KH <greg@kroah.com>
Cc: Dominik Brodowski <linux@dominikbrodowski.net>
Cc: Adam Belay <ambx1@neo.rr.com>
Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
Cc: "David S. Miller" <davem@davemloft.net>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/arm26/kernel/traps.c | 12 | ||||
-rw-r--r-- | arch/i386/kernel/cpu/cpufreq/powernow-k8.c | 9 | ||||
-rw-r--r-- | arch/i386/kernel/cpu/mtrr/main.c | 13 | ||||
-rw-r--r-- | arch/i386/kernel/microcode.c | 7 | ||||
-rw-r--r-- | arch/mips/lasat/sysctl.c | 63 | ||||
-rw-r--r-- | arch/powerpc/mm/imalloc.c | 18 | ||||
-rw-r--r-- | arch/powerpc/platforms/cell/spu_base.c | 22 | ||||
-rw-r--r-- | arch/powerpc/platforms/powermac/cpufreq_64.c | 7 |
8 files changed, 78 insertions, 73 deletions
diff --git a/arch/arm26/kernel/traps.c b/arch/arm26/kernel/traps.c index 5847ea5d7747..a79de041b50e 100644 --- a/arch/arm26/kernel/traps.c +++ b/arch/arm26/kernel/traps.c | |||
@@ -34,7 +34,7 @@ | |||
34 | #include <asm/system.h> | 34 | #include <asm/system.h> |
35 | #include <asm/uaccess.h> | 35 | #include <asm/uaccess.h> |
36 | #include <asm/unistd.h> | 36 | #include <asm/unistd.h> |
37 | #include <asm/semaphore.h> | 37 | #include <linux/mutex.h> |
38 | 38 | ||
39 | #include "ptrace.h" | 39 | #include "ptrace.h" |
40 | 40 | ||
@@ -207,19 +207,19 @@ void die_if_kernel(const char *str, struct pt_regs *regs, int err) | |||
207 | die(str, regs, err); | 207 | die(str, regs, err); |
208 | } | 208 | } |
209 | 209 | ||
210 | static DECLARE_MUTEX(undef_sem); | 210 | static DEFINE_MUTEX(undef_mutex); |
211 | static int (*undef_hook)(struct pt_regs *); | 211 | static int (*undef_hook)(struct pt_regs *); |
212 | 212 | ||
213 | int request_undef_hook(int (*fn)(struct pt_regs *)) | 213 | int request_undef_hook(int (*fn)(struct pt_regs *)) |
214 | { | 214 | { |
215 | int ret = -EBUSY; | 215 | int ret = -EBUSY; |
216 | 216 | ||
217 | down(&undef_sem); | 217 | mutex_lock(&undef_mutex); |
218 | if (undef_hook == NULL) { | 218 | if (undef_hook == NULL) { |
219 | undef_hook = fn; | 219 | undef_hook = fn; |
220 | ret = 0; | 220 | ret = 0; |
221 | } | 221 | } |
222 | up(&undef_sem); | 222 | mutex_unlock(&undef_mutex); |
223 | 223 | ||
224 | return ret; | 224 | return ret; |
225 | } | 225 | } |
@@ -228,12 +228,12 @@ int release_undef_hook(int (*fn)(struct pt_regs *)) | |||
228 | { | 228 | { |
229 | int ret = -EINVAL; | 229 | int ret = -EINVAL; |
230 | 230 | ||
231 | down(&undef_sem); | 231 | mutex_lock(&undef_mutex); |
232 | if (undef_hook == fn) { | 232 | if (undef_hook == fn) { |
233 | undef_hook = NULL; | 233 | undef_hook = NULL; |
234 | ret = 0; | 234 | ret = 0; |
235 | } | 235 | } |
236 | up(&undef_sem); | 236 | mutex_unlock(&undef_mutex); |
237 | 237 | ||
238 | return ret; | 238 | return ret; |
239 | } | 239 | } |
diff --git a/arch/i386/kernel/cpu/cpufreq/powernow-k8.c b/arch/i386/kernel/cpu/cpufreq/powernow-k8.c index e5bc06480ff9..1e70823e1cb5 100644 --- a/arch/i386/kernel/cpu/cpufreq/powernow-k8.c +++ b/arch/i386/kernel/cpu/cpufreq/powernow-k8.c | |||
@@ -40,6 +40,7 @@ | |||
40 | 40 | ||
41 | #ifdef CONFIG_X86_POWERNOW_K8_ACPI | 41 | #ifdef CONFIG_X86_POWERNOW_K8_ACPI |
42 | #include <linux/acpi.h> | 42 | #include <linux/acpi.h> |
43 | #include <linux/mutex.h> | ||
43 | #include <acpi/processor.h> | 44 | #include <acpi/processor.h> |
44 | #endif | 45 | #endif |
45 | 46 | ||
@@ -49,7 +50,7 @@ | |||
49 | #include "powernow-k8.h" | 50 | #include "powernow-k8.h" |
50 | 51 | ||
51 | /* serialize freq changes */ | 52 | /* serialize freq changes */ |
52 | static DECLARE_MUTEX(fidvid_sem); | 53 | static DEFINE_MUTEX(fidvid_mutex); |
53 | 54 | ||
54 | static struct powernow_k8_data *powernow_data[NR_CPUS]; | 55 | static struct powernow_k8_data *powernow_data[NR_CPUS]; |
55 | 56 | ||
@@ -943,17 +944,17 @@ static int powernowk8_target(struct cpufreq_policy *pol, unsigned targfreq, unsi | |||
943 | if (cpufreq_frequency_table_target(pol, data->powernow_table, targfreq, relation, &newstate)) | 944 | if (cpufreq_frequency_table_target(pol, data->powernow_table, targfreq, relation, &newstate)) |
944 | goto err_out; | 945 | goto err_out; |
945 | 946 | ||
946 | down(&fidvid_sem); | 947 | mutex_lock(&fidvid_mutex); |
947 | 948 | ||
948 | powernow_k8_acpi_pst_values(data, newstate); | 949 | powernow_k8_acpi_pst_values(data, newstate); |
949 | 950 | ||
950 | if (transition_frequency(data, newstate)) { | 951 | if (transition_frequency(data, newstate)) { |
951 | printk(KERN_ERR PFX "transition frequency failed\n"); | 952 | printk(KERN_ERR PFX "transition frequency failed\n"); |
952 | ret = 1; | 953 | ret = 1; |
953 | up(&fidvid_sem); | 954 | mutex_unlock(&fidvid_mutex); |
954 | goto err_out; | 955 | goto err_out; |
955 | } | 956 | } |
956 | up(&fidvid_sem); | 957 | mutex_unlock(&fidvid_mutex); |
957 | 958 | ||
958 | pol->cur = find_khz_freq_from_fid(data->currfid); | 959 | pol->cur = find_khz_freq_from_fid(data->currfid); |
959 | ret = 0; | 960 | ret = 0; |
diff --git a/arch/i386/kernel/cpu/mtrr/main.c b/arch/i386/kernel/cpu/mtrr/main.c index 3b4618bed70d..fff90bda4733 100644 --- a/arch/i386/kernel/cpu/mtrr/main.c +++ b/arch/i386/kernel/cpu/mtrr/main.c | |||
@@ -36,6 +36,7 @@ | |||
36 | #include <linux/pci.h> | 36 | #include <linux/pci.h> |
37 | #include <linux/smp.h> | 37 | #include <linux/smp.h> |
38 | #include <linux/cpu.h> | 38 | #include <linux/cpu.h> |
39 | #include <linux/mutex.h> | ||
39 | 40 | ||
40 | #include <asm/mtrr.h> | 41 | #include <asm/mtrr.h> |
41 | 42 | ||
@@ -47,7 +48,7 @@ | |||
47 | u32 num_var_ranges = 0; | 48 | u32 num_var_ranges = 0; |
48 | 49 | ||
49 | unsigned int *usage_table; | 50 | unsigned int *usage_table; |
50 | static DECLARE_MUTEX(mtrr_sem); | 51 | static DEFINE_MUTEX(mtrr_mutex); |
51 | 52 | ||
52 | u32 size_or_mask, size_and_mask; | 53 | u32 size_or_mask, size_and_mask; |
53 | 54 | ||
@@ -333,7 +334,7 @@ int mtrr_add_page(unsigned long base, unsigned long size, | |||
333 | /* No CPU hotplug when we change MTRR entries */ | 334 | /* No CPU hotplug when we change MTRR entries */ |
334 | lock_cpu_hotplug(); | 335 | lock_cpu_hotplug(); |
335 | /* Search for existing MTRR */ | 336 | /* Search for existing MTRR */ |
336 | down(&mtrr_sem); | 337 | mutex_lock(&mtrr_mutex); |
337 | for (i = 0; i < num_var_ranges; ++i) { | 338 | for (i = 0; i < num_var_ranges; ++i) { |
338 | mtrr_if->get(i, &lbase, &lsize, <ype); | 339 | mtrr_if->get(i, &lbase, &lsize, <ype); |
339 | if (base >= lbase + lsize) | 340 | if (base >= lbase + lsize) |
@@ -371,7 +372,7 @@ int mtrr_add_page(unsigned long base, unsigned long size, | |||
371 | printk(KERN_INFO "mtrr: no more MTRRs available\n"); | 372 | printk(KERN_INFO "mtrr: no more MTRRs available\n"); |
372 | error = i; | 373 | error = i; |
373 | out: | 374 | out: |
374 | up(&mtrr_sem); | 375 | mutex_unlock(&mtrr_mutex); |
375 | unlock_cpu_hotplug(); | 376 | unlock_cpu_hotplug(); |
376 | return error; | 377 | return error; |
377 | } | 378 | } |
@@ -464,7 +465,7 @@ int mtrr_del_page(int reg, unsigned long base, unsigned long size) | |||
464 | max = num_var_ranges; | 465 | max = num_var_ranges; |
465 | /* No CPU hotplug when we change MTRR entries */ | 466 | /* No CPU hotplug when we change MTRR entries */ |
466 | lock_cpu_hotplug(); | 467 | lock_cpu_hotplug(); |
467 | down(&mtrr_sem); | 468 | mutex_lock(&mtrr_mutex); |
468 | if (reg < 0) { | 469 | if (reg < 0) { |
469 | /* Search for existing MTRR */ | 470 | /* Search for existing MTRR */ |
470 | for (i = 0; i < max; ++i) { | 471 | for (i = 0; i < max; ++i) { |
@@ -503,7 +504,7 @@ int mtrr_del_page(int reg, unsigned long base, unsigned long size) | |||
503 | set_mtrr(reg, 0, 0, 0); | 504 | set_mtrr(reg, 0, 0, 0); |
504 | error = reg; | 505 | error = reg; |
505 | out: | 506 | out: |
506 | up(&mtrr_sem); | 507 | mutex_unlock(&mtrr_mutex); |
507 | unlock_cpu_hotplug(); | 508 | unlock_cpu_hotplug(); |
508 | return error; | 509 | return error; |
509 | } | 510 | } |
@@ -685,7 +686,7 @@ void mtrr_ap_init(void) | |||
685 | if (!mtrr_if || !use_intel()) | 686 | if (!mtrr_if || !use_intel()) |
686 | return; | 687 | return; |
687 | /* | 688 | /* |
688 | * Ideally we should hold mtrr_sem here to avoid mtrr entries changed, | 689 | * Ideally we should hold mtrr_mutex here to avoid mtrr entries changed, |
689 | * but this routine will be called in cpu boot time, holding the lock | 690 | * but this routine will be called in cpu boot time, holding the lock |
690 | * breaks it. This routine is called in two cases: 1.very earily time | 691 | * breaks it. This routine is called in two cases: 1.very earily time |
691 | * of software resume, when there absolutely isn't mtrr entry changes; | 692 | * of software resume, when there absolutely isn't mtrr entry changes; |
diff --git a/arch/i386/kernel/microcode.c b/arch/i386/kernel/microcode.c index 55bc365b8753..dd780a00553f 100644 --- a/arch/i386/kernel/microcode.c +++ b/arch/i386/kernel/microcode.c | |||
@@ -81,6 +81,7 @@ | |||
81 | #include <linux/miscdevice.h> | 81 | #include <linux/miscdevice.h> |
82 | #include <linux/spinlock.h> | 82 | #include <linux/spinlock.h> |
83 | #include <linux/mm.h> | 83 | #include <linux/mm.h> |
84 | #include <linux/mutex.h> | ||
84 | 85 | ||
85 | #include <asm/msr.h> | 86 | #include <asm/msr.h> |
86 | #include <asm/uaccess.h> | 87 | #include <asm/uaccess.h> |
@@ -114,7 +115,7 @@ MODULE_LICENSE("GPL"); | |||
114 | static DEFINE_SPINLOCK(microcode_update_lock); | 115 | static DEFINE_SPINLOCK(microcode_update_lock); |
115 | 116 | ||
116 | /* no concurrent ->write()s are allowed on /dev/cpu/microcode */ | 117 | /* no concurrent ->write()s are allowed on /dev/cpu/microcode */ |
117 | static DECLARE_MUTEX(microcode_sem); | 118 | static DEFINE_MUTEX(microcode_mutex); |
118 | 119 | ||
119 | static void __user *user_buffer; /* user area microcode data buffer */ | 120 | static void __user *user_buffer; /* user area microcode data buffer */ |
120 | static unsigned int user_buffer_size; /* it's size */ | 121 | static unsigned int user_buffer_size; /* it's size */ |
@@ -444,7 +445,7 @@ static ssize_t microcode_write (struct file *file, const char __user *buf, size_ | |||
444 | return -EINVAL; | 445 | return -EINVAL; |
445 | } | 446 | } |
446 | 447 | ||
447 | down(µcode_sem); | 448 | mutex_lock(µcode_mutex); |
448 | 449 | ||
449 | user_buffer = (void __user *) buf; | 450 | user_buffer = (void __user *) buf; |
450 | user_buffer_size = (int) len; | 451 | user_buffer_size = (int) len; |
@@ -453,7 +454,7 @@ static ssize_t microcode_write (struct file *file, const char __user *buf, size_ | |||
453 | if (!ret) | 454 | if (!ret) |
454 | ret = (ssize_t)len; | 455 | ret = (ssize_t)len; |
455 | 456 | ||
456 | up(µcode_sem); | 457 | mutex_unlock(µcode_mutex); |
457 | 458 | ||
458 | return ret; | 459 | return ret; |
459 | } | 460 | } |
diff --git a/arch/mips/lasat/sysctl.c b/arch/mips/lasat/sysctl.c index 8ff43a1c1e99..e3d5aaa90f0d 100644 --- a/arch/mips/lasat/sysctl.c +++ b/arch/mips/lasat/sysctl.c | |||
@@ -30,12 +30,13 @@ | |||
30 | #include <linux/string.h> | 30 | #include <linux/string.h> |
31 | #include <linux/net.h> | 31 | #include <linux/net.h> |
32 | #include <linux/inet.h> | 32 | #include <linux/inet.h> |
33 | #include <linux/mutex.h> | ||
33 | #include <asm/uaccess.h> | 34 | #include <asm/uaccess.h> |
34 | 35 | ||
35 | #include "sysctl.h" | 36 | #include "sysctl.h" |
36 | #include "ds1603.h" | 37 | #include "ds1603.h" |
37 | 38 | ||
38 | static DECLARE_MUTEX(lasat_info_sem); | 39 | static DEFINE_MUTEX(lasat_info_mutex); |
39 | 40 | ||
40 | /* Strategy function to write EEPROM after changing string entry */ | 41 | /* Strategy function to write EEPROM after changing string entry */ |
41 | int sysctl_lasatstring(ctl_table *table, int *name, int nlen, | 42 | int sysctl_lasatstring(ctl_table *table, int *name, int nlen, |
@@ -43,17 +44,17 @@ int sysctl_lasatstring(ctl_table *table, int *name, int nlen, | |||
43 | void *newval, size_t newlen, void **context) | 44 | void *newval, size_t newlen, void **context) |
44 | { | 45 | { |
45 | int r; | 46 | int r; |
46 | down(&lasat_info_sem); | 47 | mutex_lock(&lasat_info_mutex); |
47 | r = sysctl_string(table, name, | 48 | r = sysctl_string(table, name, |
48 | nlen, oldval, oldlenp, newval, newlen, context); | 49 | nlen, oldval, oldlenp, newval, newlen, context); |
49 | if (r < 0) { | 50 | if (r < 0) { |
50 | up(&lasat_info_sem); | 51 | mutex_unlock(&lasat_info_mutex); |
51 | return r; | 52 | return r; |
52 | } | 53 | } |
53 | if (newval && newlen) { | 54 | if (newval && newlen) { |
54 | lasat_write_eeprom_info(); | 55 | lasat_write_eeprom_info(); |
55 | } | 56 | } |
56 | up(&lasat_info_sem); | 57 | mutex_unlock(&lasat_info_mutex); |
57 | return 1; | 58 | return 1; |
58 | } | 59 | } |
59 | 60 | ||
@@ -63,14 +64,14 @@ int proc_dolasatstring(ctl_table *table, int write, struct file *filp, | |||
63 | void *buffer, size_t *lenp, loff_t *ppos) | 64 | void *buffer, size_t *lenp, loff_t *ppos) |
64 | { | 65 | { |
65 | int r; | 66 | int r; |
66 | down(&lasat_info_sem); | 67 | mutex_lock(&lasat_info_mutex); |
67 | r = proc_dostring(table, write, filp, buffer, lenp, ppos); | 68 | r = proc_dostring(table, write, filp, buffer, lenp, ppos); |
68 | if ( (!write) || r) { | 69 | if ( (!write) || r) { |
69 | up(&lasat_info_sem); | 70 | mutex_unlock(&lasat_info_mutex); |
70 | return r; | 71 | return r; |
71 | } | 72 | } |
72 | lasat_write_eeprom_info(); | 73 | lasat_write_eeprom_info(); |
73 | up(&lasat_info_sem); | 74 | mutex_unlock(&lasat_info_mutex); |
74 | return 0; | 75 | return 0; |
75 | } | 76 | } |
76 | 77 | ||
@@ -79,14 +80,14 @@ int proc_dolasatint(ctl_table *table, int write, struct file *filp, | |||
79 | void *buffer, size_t *lenp, loff_t *ppos) | 80 | void *buffer, size_t *lenp, loff_t *ppos) |
80 | { | 81 | { |
81 | int r; | 82 | int r; |
82 | down(&lasat_info_sem); | 83 | mutex_lock(&lasat_info_mutex); |
83 | r = proc_dointvec(table, write, filp, buffer, lenp, ppos); | 84 | r = proc_dointvec(table, write, filp, buffer, lenp, ppos); |
84 | if ( (!write) || r) { | 85 | if ( (!write) || r) { |
85 | up(&lasat_info_sem); | 86 | mutex_unlock(&lasat_info_mutex); |
86 | return r; | 87 | return r; |
87 | } | 88 | } |
88 | lasat_write_eeprom_info(); | 89 | lasat_write_eeprom_info(); |
89 | up(&lasat_info_sem); | 90 | mutex_unlock(&lasat_info_mutex); |
90 | return 0; | 91 | return 0; |
91 | } | 92 | } |
92 | 93 | ||
@@ -98,7 +99,7 @@ int proc_dolasatrtc(ctl_table *table, int write, struct file *filp, | |||
98 | void *buffer, size_t *lenp, loff_t *ppos) | 99 | void *buffer, size_t *lenp, loff_t *ppos) |
99 | { | 100 | { |
100 | int r; | 101 | int r; |
101 | down(&lasat_info_sem); | 102 | mutex_lock(&lasat_info_mutex); |
102 | if (!write) { | 103 | if (!write) { |
103 | rtctmp = ds1603_read(); | 104 | rtctmp = ds1603_read(); |
104 | /* check for time < 0 and set to 0 */ | 105 | /* check for time < 0 and set to 0 */ |
@@ -107,11 +108,11 @@ int proc_dolasatrtc(ctl_table *table, int write, struct file *filp, | |||
107 | } | 108 | } |
108 | r = proc_dointvec(table, write, filp, buffer, lenp, ppos); | 109 | r = proc_dointvec(table, write, filp, buffer, lenp, ppos); |
109 | if ( (!write) || r) { | 110 | if ( (!write) || r) { |
110 | up(&lasat_info_sem); | 111 | mutex_unlock(&lasat_info_mutex); |
111 | return r; | 112 | return r; |
112 | } | 113 | } |
113 | ds1603_set(rtctmp); | 114 | ds1603_set(rtctmp); |
114 | up(&lasat_info_sem); | 115 | mutex_unlock(&lasat_info_mutex); |
115 | return 0; | 116 | return 0; |
116 | } | 117 | } |
117 | #endif | 118 | #endif |
@@ -122,16 +123,16 @@ int sysctl_lasat_intvec(ctl_table *table, int *name, int nlen, | |||
122 | void *newval, size_t newlen, void **context) | 123 | void *newval, size_t newlen, void **context) |
123 | { | 124 | { |
124 | int r; | 125 | int r; |
125 | down(&lasat_info_sem); | 126 | mutex_lock(&lasat_info_mutex); |
126 | r = sysctl_intvec(table, name, nlen, oldval, oldlenp, newval, newlen, context); | 127 | r = sysctl_intvec(table, name, nlen, oldval, oldlenp, newval, newlen, context); |
127 | if (r < 0) { | 128 | if (r < 0) { |
128 | up(&lasat_info_sem); | 129 | mutex_unlock(&lasat_info_mutex); |
129 | return r; | 130 | return r; |
130 | } | 131 | } |
131 | if (newval && newlen) { | 132 | if (newval && newlen) { |
132 | lasat_write_eeprom_info(); | 133 | lasat_write_eeprom_info(); |
133 | } | 134 | } |
134 | up(&lasat_info_sem); | 135 | mutex_unlock(&lasat_info_mutex); |
135 | return 1; | 136 | return 1; |
136 | } | 137 | } |
137 | 138 | ||
@@ -142,19 +143,19 @@ int sysctl_lasat_rtc(ctl_table *table, int *name, int nlen, | |||
142 | void *newval, size_t newlen, void **context) | 143 | void *newval, size_t newlen, void **context) |
143 | { | 144 | { |
144 | int r; | 145 | int r; |
145 | down(&lasat_info_sem); | 146 | mutex_lock(&lasat_info_mutex); |
146 | rtctmp = ds1603_read(); | 147 | rtctmp = ds1603_read(); |
147 | if (rtctmp < 0) | 148 | if (rtctmp < 0) |
148 | rtctmp = 0; | 149 | rtctmp = 0; |
149 | r = sysctl_intvec(table, name, nlen, oldval, oldlenp, newval, newlen, context); | 150 | r = sysctl_intvec(table, name, nlen, oldval, oldlenp, newval, newlen, context); |
150 | if (r < 0) { | 151 | if (r < 0) { |
151 | up(&lasat_info_sem); | 152 | mutex_unlock(&lasat_info_mutex); |
152 | return r; | 153 | return r; |
153 | } | 154 | } |
154 | if (newval && newlen) { | 155 | if (newval && newlen) { |
155 | ds1603_set(rtctmp); | 156 | ds1603_set(rtctmp); |
156 | } | 157 | } |
157 | up(&lasat_info_sem); | 158 | mutex_unlock(&lasat_info_mutex); |
158 | return 1; | 159 | return 1; |
159 | } | 160 | } |
160 | #endif | 161 | #endif |
@@ -192,13 +193,13 @@ int proc_lasat_ip(ctl_table *table, int write, struct file *filp, | |||
192 | return 0; | 193 | return 0; |
193 | } | 194 | } |
194 | 195 | ||
195 | down(&lasat_info_sem); | 196 | mutex_lock(&lasat_info_mutex); |
196 | if (write) { | 197 | if (write) { |
197 | len = 0; | 198 | len = 0; |
198 | p = buffer; | 199 | p = buffer; |
199 | while (len < *lenp) { | 200 | while (len < *lenp) { |
200 | if(get_user(c, p++)) { | 201 | if(get_user(c, p++)) { |
201 | up(&lasat_info_sem); | 202 | mutex_unlock(&lasat_info_mutex); |
202 | return -EFAULT; | 203 | return -EFAULT; |
203 | } | 204 | } |
204 | if (c == 0 || c == '\n') | 205 | if (c == 0 || c == '\n') |
@@ -209,7 +210,7 @@ int proc_lasat_ip(ctl_table *table, int write, struct file *filp, | |||
209 | len = sizeof(proc_lasat_ipbuf) - 1; | 210 | len = sizeof(proc_lasat_ipbuf) - 1; |
210 | if (copy_from_user(proc_lasat_ipbuf, buffer, len)) | 211 | if (copy_from_user(proc_lasat_ipbuf, buffer, len)) |
211 | { | 212 | { |
212 | up(&lasat_info_sem); | 213 | mutex_unlock(&lasat_info_mutex); |
213 | return -EFAULT; | 214 | return -EFAULT; |
214 | } | 215 | } |
215 | proc_lasat_ipbuf[len] = 0; | 216 | proc_lasat_ipbuf[len] = 0; |
@@ -230,12 +231,12 @@ int proc_lasat_ip(ctl_table *table, int write, struct file *filp, | |||
230 | len = *lenp; | 231 | len = *lenp; |
231 | if (len) | 232 | if (len) |
232 | if(copy_to_user(buffer, proc_lasat_ipbuf, len)) { | 233 | if(copy_to_user(buffer, proc_lasat_ipbuf, len)) { |
233 | up(&lasat_info_sem); | 234 | mutex_unlock(&lasat_info_mutex); |
234 | return -EFAULT; | 235 | return -EFAULT; |
235 | } | 236 | } |
236 | if (len < *lenp) { | 237 | if (len < *lenp) { |
237 | if(put_user('\n', ((char *) buffer) + len)) { | 238 | if(put_user('\n', ((char *) buffer) + len)) { |
238 | up(&lasat_info_sem); | 239 | mutex_unlock(&lasat_info_mutex); |
239 | return -EFAULT; | 240 | return -EFAULT; |
240 | } | 241 | } |
241 | len++; | 242 | len++; |
@@ -244,7 +245,7 @@ int proc_lasat_ip(ctl_table *table, int write, struct file *filp, | |||
244 | *ppos += len; | 245 | *ppos += len; |
245 | } | 246 | } |
246 | update_bcastaddr(); | 247 | update_bcastaddr(); |
247 | up(&lasat_info_sem); | 248 | mutex_unlock(&lasat_info_mutex); |
248 | return 0; | 249 | return 0; |
249 | } | 250 | } |
250 | #endif /* defined(CONFIG_INET) */ | 251 | #endif /* defined(CONFIG_INET) */ |
@@ -256,10 +257,10 @@ static int sysctl_lasat_eeprom_value(ctl_table *table, int *name, int nlen, | |||
256 | { | 257 | { |
257 | int r; | 258 | int r; |
258 | 259 | ||
259 | down(&lasat_info_sem); | 260 | mutex_lock(&lasat_info_mutex); |
260 | r = sysctl_intvec(table, name, nlen, oldval, oldlenp, newval, newlen, context); | 261 | r = sysctl_intvec(table, name, nlen, oldval, oldlenp, newval, newlen, context); |
261 | if (r < 0) { | 262 | if (r < 0) { |
262 | up(&lasat_info_sem); | 263 | mutex_unlock(&lasat_info_mutex); |
263 | return r; | 264 | return r; |
264 | } | 265 | } |
265 | 266 | ||
@@ -271,7 +272,7 @@ static int sysctl_lasat_eeprom_value(ctl_table *table, int *name, int nlen, | |||
271 | lasat_write_eeprom_info(); | 272 | lasat_write_eeprom_info(); |
272 | lasat_init_board_info(); | 273 | lasat_init_board_info(); |
273 | } | 274 | } |
274 | up(&lasat_info_sem); | 275 | mutex_unlock(&lasat_info_mutex); |
275 | 276 | ||
276 | return 0; | 277 | return 0; |
277 | } | 278 | } |
@@ -280,10 +281,10 @@ int proc_lasat_eeprom_value(ctl_table *table, int write, struct file *filp, | |||
280 | void *buffer, size_t *lenp, loff_t *ppos) | 281 | void *buffer, size_t *lenp, loff_t *ppos) |
281 | { | 282 | { |
282 | int r; | 283 | int r; |
283 | down(&lasat_info_sem); | 284 | mutex_lock(&lasat_info_mutex); |
284 | r = proc_dointvec(table, write, filp, buffer, lenp, ppos); | 285 | r = proc_dointvec(table, write, filp, buffer, lenp, ppos); |
285 | if ( (!write) || r) { | 286 | if ( (!write) || r) { |
286 | up(&lasat_info_sem); | 287 | mutex_unlock(&lasat_info_mutex); |
287 | return r; | 288 | return r; |
288 | } | 289 | } |
289 | if (filp && filp->f_dentry) | 290 | if (filp && filp->f_dentry) |
@@ -294,7 +295,7 @@ int proc_lasat_eeprom_value(ctl_table *table, int write, struct file *filp, | |||
294 | lasat_board_info.li_eeprom_info.debugaccess = lasat_board_info.li_debugaccess; | 295 | lasat_board_info.li_eeprom_info.debugaccess = lasat_board_info.li_debugaccess; |
295 | } | 296 | } |
296 | lasat_write_eeprom_info(); | 297 | lasat_write_eeprom_info(); |
297 | up(&lasat_info_sem); | 298 | mutex_unlock(&lasat_info_mutex); |
298 | return 0; | 299 | return 0; |
299 | } | 300 | } |
300 | 301 | ||
diff --git a/arch/powerpc/mm/imalloc.c b/arch/powerpc/mm/imalloc.c index 8b0c132bc163..add8c1a9af68 100644 --- a/arch/powerpc/mm/imalloc.c +++ b/arch/powerpc/mm/imalloc.c | |||
@@ -13,12 +13,12 @@ | |||
13 | #include <asm/uaccess.h> | 13 | #include <asm/uaccess.h> |
14 | #include <asm/pgalloc.h> | 14 | #include <asm/pgalloc.h> |
15 | #include <asm/pgtable.h> | 15 | #include <asm/pgtable.h> |
16 | #include <asm/semaphore.h> | 16 | #include <linux/mutex.h> |
17 | #include <asm/cacheflush.h> | 17 | #include <asm/cacheflush.h> |
18 | 18 | ||
19 | #include "mmu_decl.h" | 19 | #include "mmu_decl.h" |
20 | 20 | ||
21 | static DECLARE_MUTEX(imlist_sem); | 21 | static DEFINE_MUTEX(imlist_mutex); |
22 | struct vm_struct * imlist = NULL; | 22 | struct vm_struct * imlist = NULL; |
23 | 23 | ||
24 | static int get_free_im_addr(unsigned long size, unsigned long *im_addr) | 24 | static int get_free_im_addr(unsigned long size, unsigned long *im_addr) |
@@ -257,7 +257,7 @@ struct vm_struct * im_get_free_area(unsigned long size) | |||
257 | struct vm_struct *area; | 257 | struct vm_struct *area; |
258 | unsigned long addr; | 258 | unsigned long addr; |
259 | 259 | ||
260 | down(&imlist_sem); | 260 | mutex_lock(&imlist_mutex); |
261 | if (get_free_im_addr(size, &addr)) { | 261 | if (get_free_im_addr(size, &addr)) { |
262 | printk(KERN_ERR "%s() cannot obtain addr for size 0x%lx\n", | 262 | printk(KERN_ERR "%s() cannot obtain addr for size 0x%lx\n", |
263 | __FUNCTION__, size); | 263 | __FUNCTION__, size); |
@@ -272,7 +272,7 @@ struct vm_struct * im_get_free_area(unsigned long size) | |||
272 | __FUNCTION__, addr, size); | 272 | __FUNCTION__, addr, size); |
273 | } | 273 | } |
274 | next_im_done: | 274 | next_im_done: |
275 | up(&imlist_sem); | 275 | mutex_unlock(&imlist_mutex); |
276 | return area; | 276 | return area; |
277 | } | 277 | } |
278 | 278 | ||
@@ -281,9 +281,9 @@ struct vm_struct * im_get_area(unsigned long v_addr, unsigned long size, | |||
281 | { | 281 | { |
282 | struct vm_struct *area; | 282 | struct vm_struct *area; |
283 | 283 | ||
284 | down(&imlist_sem); | 284 | mutex_lock(&imlist_mutex); |
285 | area = __im_get_area(v_addr, size, criteria); | 285 | area = __im_get_area(v_addr, size, criteria); |
286 | up(&imlist_sem); | 286 | mutex_unlock(&imlist_mutex); |
287 | return area; | 287 | return area; |
288 | } | 288 | } |
289 | 289 | ||
@@ -297,17 +297,17 @@ void im_free(void * addr) | |||
297 | printk(KERN_ERR "Trying to %s bad address (%p)\n", __FUNCTION__, addr); | 297 | printk(KERN_ERR "Trying to %s bad address (%p)\n", __FUNCTION__, addr); |
298 | return; | 298 | return; |
299 | } | 299 | } |
300 | down(&imlist_sem); | 300 | mutex_lock(&imlist_mutex); |
301 | for (p = &imlist ; (tmp = *p) ; p = &tmp->next) { | 301 | for (p = &imlist ; (tmp = *p) ; p = &tmp->next) { |
302 | if (tmp->addr == addr) { | 302 | if (tmp->addr == addr) { |
303 | *p = tmp->next; | 303 | *p = tmp->next; |
304 | unmap_vm_area(tmp); | 304 | unmap_vm_area(tmp); |
305 | kfree(tmp); | 305 | kfree(tmp); |
306 | up(&imlist_sem); | 306 | mutex_unlock(&imlist_mutex); |
307 | return; | 307 | return; |
308 | } | 308 | } |
309 | } | 309 | } |
310 | up(&imlist_sem); | 310 | mutex_unlock(&imlist_mutex); |
311 | printk(KERN_ERR "Trying to %s nonexistent area (%p)\n", __FUNCTION__, | 311 | printk(KERN_ERR "Trying to %s nonexistent area (%p)\n", __FUNCTION__, |
312 | addr); | 312 | addr); |
313 | } | 313 | } |
diff --git a/arch/powerpc/platforms/cell/spu_base.c b/arch/powerpc/platforms/cell/spu_base.c index d75ae03df686..a8fa1eeeb174 100644 --- a/arch/powerpc/platforms/cell/spu_base.c +++ b/arch/powerpc/platforms/cell/spu_base.c | |||
@@ -32,7 +32,7 @@ | |||
32 | 32 | ||
33 | #include <asm/io.h> | 33 | #include <asm/io.h> |
34 | #include <asm/prom.h> | 34 | #include <asm/prom.h> |
35 | #include <asm/semaphore.h> | 35 | #include <linux/mutex.h> |
36 | #include <asm/spu.h> | 36 | #include <asm/spu.h> |
37 | #include <asm/mmu_context.h> | 37 | #include <asm/mmu_context.h> |
38 | 38 | ||
@@ -342,7 +342,7 @@ spu_free_irqs(struct spu *spu) | |||
342 | } | 342 | } |
343 | 343 | ||
344 | static LIST_HEAD(spu_list); | 344 | static LIST_HEAD(spu_list); |
345 | static DECLARE_MUTEX(spu_mutex); | 345 | static DEFINE_MUTEX(spu_mutex); |
346 | 346 | ||
347 | static void spu_init_channels(struct spu *spu) | 347 | static void spu_init_channels(struct spu *spu) |
348 | { | 348 | { |
@@ -382,7 +382,7 @@ struct spu *spu_alloc(void) | |||
382 | { | 382 | { |
383 | struct spu *spu; | 383 | struct spu *spu; |
384 | 384 | ||
385 | down(&spu_mutex); | 385 | mutex_lock(&spu_mutex); |
386 | if (!list_empty(&spu_list)) { | 386 | if (!list_empty(&spu_list)) { |
387 | spu = list_entry(spu_list.next, struct spu, list); | 387 | spu = list_entry(spu_list.next, struct spu, list); |
388 | list_del_init(&spu->list); | 388 | list_del_init(&spu->list); |
@@ -391,7 +391,7 @@ struct spu *spu_alloc(void) | |||
391 | pr_debug("No SPU left\n"); | 391 | pr_debug("No SPU left\n"); |
392 | spu = NULL; | 392 | spu = NULL; |
393 | } | 393 | } |
394 | up(&spu_mutex); | 394 | mutex_unlock(&spu_mutex); |
395 | 395 | ||
396 | if (spu) | 396 | if (spu) |
397 | spu_init_channels(spu); | 397 | spu_init_channels(spu); |
@@ -402,9 +402,9 @@ EXPORT_SYMBOL_GPL(spu_alloc); | |||
402 | 402 | ||
403 | void spu_free(struct spu *spu) | 403 | void spu_free(struct spu *spu) |
404 | { | 404 | { |
405 | down(&spu_mutex); | 405 | mutex_lock(&spu_mutex); |
406 | list_add_tail(&spu->list, &spu_list); | 406 | list_add_tail(&spu->list, &spu_list); |
407 | up(&spu_mutex); | 407 | mutex_unlock(&spu_mutex); |
408 | } | 408 | } |
409 | EXPORT_SYMBOL_GPL(spu_free); | 409 | EXPORT_SYMBOL_GPL(spu_free); |
410 | 410 | ||
@@ -633,14 +633,14 @@ static int __init create_spu(struct device_node *spe) | |||
633 | spu->wbox_callback = NULL; | 633 | spu->wbox_callback = NULL; |
634 | spu->stop_callback = NULL; | 634 | spu->stop_callback = NULL; |
635 | 635 | ||
636 | down(&spu_mutex); | 636 | mutex_lock(&spu_mutex); |
637 | spu->number = number++; | 637 | spu->number = number++; |
638 | ret = spu_request_irqs(spu); | 638 | ret = spu_request_irqs(spu); |
639 | if (ret) | 639 | if (ret) |
640 | goto out_unmap; | 640 | goto out_unmap; |
641 | 641 | ||
642 | list_add(&spu->list, &spu_list); | 642 | list_add(&spu->list, &spu_list); |
643 | up(&spu_mutex); | 643 | mutex_unlock(&spu_mutex); |
644 | 644 | ||
645 | pr_debug(KERN_DEBUG "Using SPE %s %02x %p %p %p %p %d\n", | 645 | pr_debug(KERN_DEBUG "Using SPE %s %02x %p %p %p %p %d\n", |
646 | spu->name, spu->isrc, spu->local_store, | 646 | spu->name, spu->isrc, spu->local_store, |
@@ -648,7 +648,7 @@ static int __init create_spu(struct device_node *spe) | |||
648 | goto out; | 648 | goto out; |
649 | 649 | ||
650 | out_unmap: | 650 | out_unmap: |
651 | up(&spu_mutex); | 651 | mutex_unlock(&spu_mutex); |
652 | spu_unmap(spu); | 652 | spu_unmap(spu); |
653 | out_free: | 653 | out_free: |
654 | kfree(spu); | 654 | kfree(spu); |
@@ -668,10 +668,10 @@ static void destroy_spu(struct spu *spu) | |||
668 | static void cleanup_spu_base(void) | 668 | static void cleanup_spu_base(void) |
669 | { | 669 | { |
670 | struct spu *spu, *tmp; | 670 | struct spu *spu, *tmp; |
671 | down(&spu_mutex); | 671 | mutex_lock(&spu_mutex); |
672 | list_for_each_entry_safe(spu, tmp, &spu_list, list) | 672 | list_for_each_entry_safe(spu, tmp, &spu_list, list) |
673 | destroy_spu(spu); | 673 | destroy_spu(spu); |
674 | up(&spu_mutex); | 674 | mutex_unlock(&spu_mutex); |
675 | } | 675 | } |
676 | module_exit(cleanup_spu_base); | 676 | module_exit(cleanup_spu_base); |
677 | 677 | ||
diff --git a/arch/powerpc/platforms/powermac/cpufreq_64.c b/arch/powerpc/platforms/powermac/cpufreq_64.c index a415e8d2f7af..b57e465a1b71 100644 --- a/arch/powerpc/platforms/powermac/cpufreq_64.c +++ b/arch/powerpc/platforms/powermac/cpufreq_64.c | |||
@@ -21,6 +21,7 @@ | |||
21 | #include <linux/cpufreq.h> | 21 | #include <linux/cpufreq.h> |
22 | #include <linux/init.h> | 22 | #include <linux/init.h> |
23 | #include <linux/completion.h> | 23 | #include <linux/completion.h> |
24 | #include <linux/mutex.h> | ||
24 | #include <asm/prom.h> | 25 | #include <asm/prom.h> |
25 | #include <asm/machdep.h> | 26 | #include <asm/machdep.h> |
26 | #include <asm/irq.h> | 27 | #include <asm/irq.h> |
@@ -90,7 +91,7 @@ static void (*g5_switch_volt)(int speed_mode); | |||
90 | static int (*g5_switch_freq)(int speed_mode); | 91 | static int (*g5_switch_freq)(int speed_mode); |
91 | static int (*g5_query_freq)(void); | 92 | static int (*g5_query_freq)(void); |
92 | 93 | ||
93 | static DECLARE_MUTEX(g5_switch_mutex); | 94 | static DEFINE_MUTEX(g5_switch_mutex); |
94 | 95 | ||
95 | 96 | ||
96 | static struct smu_sdbp_fvt *g5_fvt_table; /* table of op. points */ | 97 | static struct smu_sdbp_fvt *g5_fvt_table; /* table of op. points */ |
@@ -327,7 +328,7 @@ static int g5_cpufreq_target(struct cpufreq_policy *policy, | |||
327 | if (g5_pmode_cur == newstate) | 328 | if (g5_pmode_cur == newstate) |
328 | return 0; | 329 | return 0; |
329 | 330 | ||
330 | down(&g5_switch_mutex); | 331 | mutex_lock(&g5_switch_mutex); |
331 | 332 | ||
332 | freqs.old = g5_cpu_freqs[g5_pmode_cur].frequency; | 333 | freqs.old = g5_cpu_freqs[g5_pmode_cur].frequency; |
333 | freqs.new = g5_cpu_freqs[newstate].frequency; | 334 | freqs.new = g5_cpu_freqs[newstate].frequency; |
@@ -337,7 +338,7 @@ static int g5_cpufreq_target(struct cpufreq_policy *policy, | |||
337 | rc = g5_switch_freq(newstate); | 338 | rc = g5_switch_freq(newstate); |
338 | cpufreq_notify_transition(&freqs, CPUFREQ_POSTCHANGE); | 339 | cpufreq_notify_transition(&freqs, CPUFREQ_POSTCHANGE); |
339 | 340 | ||
340 | up(&g5_switch_mutex); | 341 | mutex_unlock(&g5_switch_mutex); |
341 | 342 | ||
342 | return rc; | 343 | return rc; |
343 | } | 344 | } |