diff options
Diffstat (limited to 'drivers/usb/core/file.c')
| -rw-r--r-- | drivers/usb/core/file.c | 3 | 
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/usb/core/file.c b/drivers/usb/core/file.c index 8133c99c6c5..c6a95395e52 100644 --- a/drivers/usb/core/file.c +++ b/drivers/usb/core/file.c @@ -18,6 +18,7 @@  #include <linux/module.h>  #include <linux/errno.h>  #include <linux/rwsem.h> +#include <linux/smp_lock.h>  #include <linux/usb.h>  #include "usb.h" @@ -33,6 +34,7 @@ static int usb_open(struct inode * inode, struct file * file)  	int err = -ENODEV;  	const struct file_operations *old_fops, *new_fops = NULL; +	lock_kernel();  	down_read(&minor_rwsem);  	c = usb_minors[minor]; @@ -51,6 +53,7 @@ static int usb_open(struct inode * inode, struct file * file)  	fops_put(old_fops);   done:  	up_read(&minor_rwsem); +	unlock_kernel();  	return err;  }  | 
