Messages in this thread | | | From | Arnd Bergmann <> | Subject | Re: [2.6.35 patch] add missing unlock_kernel calls... | Date | Sun, 8 Aug 2010 16:58:19 +0200 |
| |
On Sunday 08 August 2010, Daniel J Blueman wrote: > Hi Roger, > > Here is a fix for 2.6.36-rc1: > > Ensure the BKL is dropped along all paths. > > Signed-off-by: Daniel J Blueman <daniel.blueman@gmail.com> > > diff --git a/drivers/hid/usbhid/hiddev.c b/drivers/hid/usbhid/hiddev.c > index c24d2fa..53263e7 100644 > --- a/drivers/hid/usbhid/hiddev.c > +++ b/drivers/hid/usbhid/hiddev.c > @@ -271,16 +271,18 @@ static int hiddev_open(struct inode *inode, > struct file *file) > lock_kernel(); > i = iminor(inode) - HIDDEV_MINOR_BASE; > > - if (i >= HIDDEV_MINORS || i < 0 || !hiddev_table[i]) > + if (i >= HIDDEV_MINORS || i < 0 || !hiddev_table[i]) { > + unlock_kernel(); > return -ENODEV; > + } > > - if (!(list = kzalloc(sizeof(struct hiddev_list), GFP_KERNEL))) > + if (!(list = kzalloc(sizeof(struct hiddev_list), GFP_KERNEL))) { > + unlock_kernel(); > return -ENOMEM; > - mutex_init(&list->thread_lock); > + } > > + mutex_init(&list->thread_lock); > list->hiddev = hiddev_table[i]; > - > - > file->private_data = list; > > /*
This should no longer be needed, since the BKL is not taken in this code any more.
Arnd
| |