diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2010-08-05 08:58:30 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2010-08-05 08:58:30 -0700 |
commit | 673b864fd76a29031aa0b4b08fc80886d527b3b7 (patch) | |
tree | c9b3f01206e7d0dd5c801b504bfd7e82383470d6 /drivers/sbus/char/flash.c | |
parent | 93b9e9a2d91b8a6c93f14e98382694f83de9f02e (diff) | |
parent | 71cd03b0044183843318bfac0b6ce5868a96ef34 (diff) | |
download | blackbird-op-linux-673b864fd76a29031aa0b4b08fc80886d527b3b7.tar.gz blackbird-op-linux-673b864fd76a29031aa0b4b08fc80886d527b3b7.zip |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6:
arch/sparc/mm: Use GFP_KERNEL
MAINTAINERS: Add trailing slash to SBUS path.
sbus: autoconvert trivial BKL users to private mutex
Diffstat (limited to 'drivers/sbus/char/flash.c')
-rw-r--r-- | drivers/sbus/char/flash.c | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/drivers/sbus/char/flash.c b/drivers/sbus/char/flash.c index 368d66294d83..ed9494e18859 100644 --- a/drivers/sbus/char/flash.c +++ b/drivers/sbus/char/flash.c @@ -10,7 +10,7 @@ #include <linux/fcntl.h> #include <linux/poll.h> #include <linux/init.h> -#include <linux/smp_lock.h> +#include <linux/mutex.h> #include <linux/spinlock.h> #include <linux/mm.h> #include <linux/of.h> @@ -22,6 +22,7 @@ #include <asm/io.h> #include <asm/upa.h> +static DEFINE_MUTEX(flash_mutex); static DEFINE_SPINLOCK(flash_lock); static struct { unsigned long read_base; /* Physical read address */ @@ -80,7 +81,7 @@ flash_mmap(struct file *file, struct vm_area_struct *vma) static long long flash_llseek(struct file *file, long long offset, int origin) { - lock_kernel(); + mutex_lock(&flash_mutex); switch (origin) { case 0: file->f_pos = offset; @@ -94,10 +95,10 @@ flash_llseek(struct file *file, long long offset, int origin) file->f_pos = flash.read_size; break; default: - unlock_kernel(); + mutex_unlock(&flash_mutex); return -EINVAL; } - unlock_kernel(); + mutex_unlock(&flash_mutex); return file->f_pos; } @@ -125,13 +126,13 @@ flash_read(struct file * file, char __user * buf, static int flash_open(struct inode *inode, struct file *file) { - lock_kernel(); + mutex_lock(&flash_mutex); if (test_and_set_bit(0, (void *)&flash.busy) != 0) { - unlock_kernel(); + mutex_unlock(&flash_mutex); return -EBUSY; } - unlock_kernel(); + mutex_unlock(&flash_mutex); return 0; } |