aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/char/viotape.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/char/viotape.c')
-rw-r--r--drivers/char/viotape.c23
1 files changed, 17 insertions, 6 deletions
diff --git a/drivers/char/viotape.c b/drivers/char/viotape.c
index 977f7d35e769..e5da98d8f9cd 100644
--- a/drivers/char/viotape.c
+++ b/drivers/char/viotape.c
@@ -678,6 +678,17 @@ free_op:
678 return ret; 678 return ret;
679} 679}
680 680
681static long viotap_unlocked_ioctl(struct file *file,
682 unsigned int cmd, unsigned long arg)
683{
684 long rc;
685
686 lock_kernel();
687 rc = viotap_ioctl(file->f_path.dentry->d_inode, file, cmd, arg);
688 unlock_kernel();
689 return rc;
690}
691
681static int viotap_open(struct inode *inode, struct file *file) 692static int viotap_open(struct inode *inode, struct file *file)
682{ 693{
683 HvLpEvent_Rc hvrc; 694 HvLpEvent_Rc hvrc;
@@ -786,12 +797,12 @@ free_op:
786} 797}
787 798
788const struct file_operations viotap_fops = { 799const struct file_operations viotap_fops = {
789 .owner = THIS_MODULE, 800 .owner = THIS_MODULE,
790 .read = viotap_read, 801 .read = viotap_read,
791 .write = viotap_write, 802 .write = viotap_write,
792 .ioctl = viotap_ioctl, 803 .unlocked_ioctl = viotap_unlocked_ioctl,
793 .open = viotap_open, 804 .open = viotap_open,
794 .release = viotap_release, 805 .release = viotap_release,
795}; 806};
796 807
797/* Handle interrupt events for tape */ 808/* Handle interrupt events for tape */