diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2010-05-24 08:01:10 -0700 | 
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2010-05-24 08:01:10 -0700 | 
| commit | f13771187b9423b824f32518319f6da85d819003 (patch) | |
| tree | c431cf16c286065a302d5f3fb43fc1abac7e4047 /drivers/usb/mon/mon_bin.c | |
| parent | 15953654cc312429740fd58fb37a5a3d63a54376 (diff) | |
| parent | 9f37af654fda88a8dcca74c785f6c20e52758866 (diff) | |
Merge branch 'bkl/ioctl' of git://git.kernel.org/pub/scm/linux/kernel/git/frederic/random-tracing
* 'bkl/ioctl' of git://git.kernel.org/pub/scm/linux/kernel/git/frederic/random-tracing:
  uml: Pushdown the bkl from harddog_kern ioctl
  sunrpc: Pushdown the bkl from sunrpc cache ioctl
  sunrpc: Pushdown the bkl from ioctl
  autofs4: Pushdown the bkl from ioctl
  uml: Convert to unlocked_ioctls to remove implicit BKL
  ncpfs: BKL ioctl pushdown
  coda: Clean-up whitespace problems in pioctl.c
  coda: BKL ioctl pushdown
  drivers: Push down BKL into various drivers
  isdn: Push down BKL into ioctl functions
  scsi: Push down BKL into ioctl functions
  dvb: Push down BKL into ioctl functions
  smbfs: Push down BKL into ioctl function
  coda/psdev: Remove BKL from ioctl function
  um/mmapper: Remove BKL usage
  sn_hwperf: Kill BKL usage
  hfsplus: Push down BKL into ioctl function
Diffstat (limited to 'drivers/usb/mon/mon_bin.c')
| -rw-r--r-- | drivers/usb/mon/mon_bin.c | 23 | 
1 files changed, 17 insertions, 6 deletions
| diff --git a/drivers/usb/mon/mon_bin.c b/drivers/usb/mon/mon_bin.c index e7fa3644ba6a..61c76b13f0f1 100644 --- a/drivers/usb/mon/mon_bin.c +++ b/drivers/usb/mon/mon_bin.c @@ -954,8 +954,7 @@ static int mon_bin_queued(struct mon_reader_bin *rp)  /*   */ -static int mon_bin_ioctl(struct inode *inode, struct file *file, -    unsigned int cmd, unsigned long arg) +static int mon_bin_ioctl(struct file *file, unsigned int cmd, unsigned long arg)  {  	struct mon_reader_bin *rp = file->private_data;  	// struct mon_bus* mbus = rp->r.m_bus; @@ -1095,6 +1094,19 @@ static int mon_bin_ioctl(struct inode *inode, struct file *file,  	return ret;  } +static long mon_bin_unlocked_ioctl(struct file *file, unsigned int cmd, +				   unsigned long arg) +{ +	int ret; + +	lock_kernel(); +	ret = mon_bin_ioctl(file, cmd, arg); +	unlock_kernel(); + +	return ret; +} + +  #ifdef CONFIG_COMPAT  static long mon_bin_compat_ioctl(struct file *file,      unsigned int cmd, unsigned long arg) @@ -1148,14 +1160,13 @@ static long mon_bin_compat_ioctl(struct file *file,  		return 0;  	case MON_IOCG_STATS: -		return mon_bin_ioctl(NULL, file, cmd, -					    (unsigned long) compat_ptr(arg)); +		return mon_bin_ioctl(file, cmd, (unsigned long) compat_ptr(arg));  	case MON_IOCQ_URB_LEN:  	case MON_IOCQ_RING_SIZE:  	case MON_IOCT_RING_SIZE:  	case MON_IOCH_MFLUSH: -		return mon_bin_ioctl(NULL, file, cmd, arg); +		return mon_bin_ioctl(file, cmd, arg);  	default:  		; @@ -1239,7 +1250,7 @@ static const struct file_operations mon_fops_binary = {  	.read =		mon_bin_read,  	/* .write =	mon_text_write, */  	.poll =		mon_bin_poll, -	.ioctl =	mon_bin_ioctl, +	.unlocked_ioctl = mon_bin_unlocked_ioctl,  #ifdef CONFIG_COMPAT  	.compat_ioctl =	mon_bin_compat_ioctl,  #endif | 
