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 | } |
