hpet: push BKL down into hpet driver
PATCH 1/1 hpet: push BKL down into hpet driver
Signed-off-by Alan Cox <[email protected]>
drivers/char/hpet.c +14 -10
@@ -30,6 +30,7 @@#include <linux/seq_file.h> #include <linux/bitops.h> #include <linux/clocksource.h> +#include <linux/smp_lock.h> #include <asm/current.h> #include <asm/uaccess.h>
@@ -371,16 +372,19 @@ static int hpet_release(struct inode *inode, struct file *file)return 0 ; } -static int hpet_ioctl_common (struct hpet_dev *,int ,unsigned long ,int ); +static long hpet_ioctl_common (struct hpet_dev *,int ,unsigned long ,int ); -static int -hpet_ioctl (struct inode *inode,struct file *file,unsigned int cmd, -unsigned long arg) +static long hpet_ioctl (struct file *file,unsigned int cmd, +unsigned long arg) { -struct hpet_dev *devp; +struct hpet_dev *devp = file->private_data; +long ret; - devp = file->private_data; -return hpet_ioctl_common (devp, cmd, arg,0 ); +lock_kernel (); + ret =hpet_ioctl_common (devp, cmd, arg,0 ); +unlock_kernel (); + +return ret; }static int hpet_ioctl_ieon (struct hpet_dev *devp)
@@ -476,8 +480,8 @@ static inline unsigned long hpet_time_div(struct hpets *hpets,return (unsigned long )m; } -static int -hpet_ioctl_common (struct hpet_dev *devp,int cmd,unsigned long arg,int kernel) +static long hpet_ioctl_common (struct hpet_dev *devp,int cmd, +unsigned long arg,int kernel) {struct hpet_timer __iomem *timer;struct hpet __iomem *hpet;
@@ -582,7 +586,7 @@ static const struct file_operations hpet_fops = { .llseek = no_llseek, .read = hpet_read, .poll = hpet_poll, - .ioctl = hpet_ioctl, + .unlocked_ioctl = hpet_ioctl, .open = hpet_open, .release = hpet_release, .fasync = hpet_fasync,