Skip to content

Commit

Permalink
sh: Remove BKL from landisk gio.
Browse files Browse the repository at this point in the history
The open function got the BKL via the big push down. Replace it by
preempt_enable/disable as this is sufficient for an UP machine.

The ioctl can be unlocked because there is no functionality which
requires serialization. The usage by multiple callers is broken with
and without the BKL due to the local static variable addr.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
  • Loading branch information
Thomas Gleixner authored and Paul Mundt committed Oct 16, 2009
1 parent 5fb80ae commit 52a9490
Showing 1 changed file with 4 additions and 6 deletions.
10 changes: 4 additions & 6 deletions arch/sh/boards/mach-landisk/gio.c
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@
*/
#include <linux/module.h>
#include <linux/init.h>
#include <linux/smp_lock.h>
#include <linux/kdev_t.h>
#include <linux/cdev.h>
#include <linux/fs.h>
Expand All @@ -35,7 +34,7 @@ static int gio_open(struct inode *inode, struct file *filp)
int minor;
int ret = -ENOENT;

lock_kernel();
preempt_disable();
minor = MINOR(inode->i_rdev);
if (minor < DEVCOUNT) {
if (openCnt > 0) {
Expand All @@ -45,7 +44,7 @@ static int gio_open(struct inode *inode, struct file *filp)
ret = 0;
}
}
unlock_kernel();
preempt_enable();
return ret;
}

Expand All @@ -60,8 +59,7 @@ static int gio_close(struct inode *inode, struct file *filp)
return 0;
}

static int gio_ioctl(struct inode *inode, struct file *filp,
unsigned int cmd, unsigned long arg)
static long gio_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
{
unsigned int data;
static unsigned int addr = 0;
Expand Down Expand Up @@ -129,7 +127,7 @@ static const struct file_operations gio_fops = {
.owner = THIS_MODULE,
.open = gio_open, /* open */
.release = gio_close, /* release */
.ioctl = gio_ioctl, /* ioctl */
.unlocked_ioctl = gio_ioctl,
};

static int __init gio_init(void)
Expand Down

0 comments on commit 52a9490

Please sign in to comment.