Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 00b81fb2 authored by Andi Kleen's avatar Andi Kleen Committed by Greg Kroah-Hartman
Browse files

USB-BKL: Remove BKL use in uhci-debug



BKL was not really needed, just came from earlier push downs.

The only part that's a bit dodgy is the lseek function. Would
need another lock or atomic access to fpos on 32bit?
Better to have a libfs lseek

Signed-off-by: default avatarAndi Kleen <ak@linux.intel.com>
Cc: Arnd Bergmann <arnd@arndb.de>
Cc: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
parent 0daeed38
Loading
Loading
Loading
Loading
+7 −13
Original line number Diff line number Diff line
@@ -495,18 +495,16 @@ 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;
@@ -517,10 +515,7 @@ static int uhci_debug_open(struct inode *inode, struct file *file)

	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)
@@ -528,9 +523,9 @@ static loff_t uhci_debug_lseek(struct file *file, loff_t off, int whence)
	struct uhci_debug *up;
	loff_t new = -1;

	lock_kernel();
	up = file->private_data;

	/* XXX: atomic 64bit seek access, but that needs to be fixed in the VFS */
	switch (whence) {
	case 0:
		new = off;
@@ -539,11 +534,10 @@ static loff_t uhci_debug_lseek(struct file *file, loff_t off, int whence)
		new = file->f_pos + off;
		break;
	}
	if (new < 0 || new > up->size) {
		unlock_kernel();

	if (new < 0 || new > up->size)
		return -EINVAL;
	}
	unlock_kernel();

	return (file->f_pos = new);
}