2008-10-09 11:23:07

by David John

[permalink] [raw]
Subject: [PATCH] HPET: Remove the BKL.

Concurrent access is protected by the spin lock hpet_lock. The
BKL is not required.

Signed-off-by: David John <[email protected]>
---
drivers/char/hpet.c | 5 +----
1 files changed, 1 insertions(+), 4 deletions(-)

diff --git a/drivers/char/hpet.c b/drivers/char/hpet.c
index b3f5dbc..0237eeb 100644
--- a/drivers/char/hpet.c
+++ b/drivers/char/hpet.c
@@ -194,7 +194,6 @@ static int hpet_open(struct inode *inode, struct file *file)
if (file->f_mode & FMODE_WRITE)
return -EINVAL;

- lock_kernel();
spin_lock_irq(&hpet_lock);

for (devp = NULL, hpetp = hpets; hpetp && !devp; hpetp = hpetp->hp_next)
@@ -209,7 +208,6 @@ static int hpet_open(struct inode *inode, struct file *file)

if (!devp) {
spin_unlock_irq(&hpet_lock);
- unlock_kernel();
return -EBUSY;
}

@@ -217,7 +215,6 @@ static int hpet_open(struct inode *inode, struct file *file)
devp->hd_irqdata = 0;
devp->hd_flags |= HPET_OPEN;
spin_unlock_irq(&hpet_lock);
- unlock_kernel();

return 0;
}
@@ -586,7 +583,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,


2008-10-09 12:59:35

by Andi Kleen

[permalink] [raw]
Subject: Re: [PATCH] HPET: Remove the BKL.

David John <[email protected]> writes:
> @@ -586,7 +583,7 @@ static const struct file_operations hpet_fops = {
> .llseek = no_llseek,
> .read = hpet_read,
> .poll = hpet_poll,
> - .ioctl = hpet_ioctl,
> + .unlocked_ioctl = hpet_ioctl,

Did this actually compile without warning? unlocked_ioctl
has a different prototype than ioctl

-Andi

--
[email protected]

2008-10-09 14:31:51

by David John

[permalink] [raw]
Subject: Re: [PATCH] HPET: Remove the BKL.

Andi Kleen wrote:
> David John <[email protected]> writes:
>> @@ -586,7 +583,7 @@ static const struct file_operations hpet_fops = {
>> .llseek = no_llseek,
>> .read = hpet_read,
>> .poll = hpet_poll,
>> - .ioctl = hpet_ioctl,
>> + .unlocked_ioctl = hpet_ioctl,
>
> Did this actually compile without warning? unlocked_ioctl
> has a different prototype than ioctl
>
> -Andi
>

Argg. I didn't check. :-[. Incidentally, this seems to have been done by
Alan here: http://lkml.org/lkml/2008/5/22/350. Was the patch dropped later?

CC'd: Alan Cox

David.