On Fri, 2009-10-02 at 09:20 +0000, Frederik Deweerdt wrote: > Hi Sven-Thorsten, > > On Fri, Oct 02, 2009 at 11:12:24AM +0200, Sven-Thorsten Dietrich wrote: > > Subject: Don't kmalloc with BKL held. > > From: Sven-Thorsten Dietrich <sdietrich@xxxxxxx> > > > > I'm eyeballing this file for complete removal of lock_kernel but > > at first glance, we definitely don't need BKL to kmalloc(). > You need to move the unlock_kernel() above the out: label too. > How about this ? Subject: Don't kmalloc with BKL held. From: Sven-Thorsten Dietrich sdietrich@xxxxxxx Sat Oct 3 01:27:27 2009 -0700 Date: Sat Oct 3 01:27:27 2009 -0700: Git: 4f62eb81e827eb857129101e49757d84ac9ee7eb We don't need BKL to kmalloc diff --git a/drivers/usb/host/uhci-debug.c b/drivers/usb/host/uhci-debug.c index e52b954..3fd5602 100644 --- a/drivers/usb/host/uhci-debug.c +++ b/drivers/usb/host/uhci-debug.c @@ -494,32 +494,30 @@ static int uhci_debug_open(struct inode *inode, struct file *file) { struct uhci_hcd *uhci = inode->i_private; struct uhci_debug *up; - int ret = -ENOMEM; unsigned long flags; - lock_kernel(); up = kmalloc(sizeof(*up), GFP_KERNEL); if (!up) - goto out; + return -ENOMEM; up->data = kmalloc(MAX_OUTPUT, GFP_KERNEL); if (!up->data) { kfree(up); - goto out; + return -ENOMEM; } up->size = 0; + + lock_kernel(); spin_lock_irqsave(&uhci->lock, flags); if (uhci->is_initialized) up->size = uhci_sprint_schedule(uhci, up->data, MAX_OUTPUT); spin_unlock_irqrestore(&uhci->lock, flags); file->private_data = up; - - ret = 0; -out: unlock_kernel(); - return ret; + + return 0; } static loff_t uhci_debug_lseek(struct file *file, loff_t off, int whence) -- To unsubscribe from this list: send the line "unsubscribe linux-rt-users" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html