aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/s390/kernel/compat_ioctl.c7
-rw-r--r--drivers/s390/char/fs3270.c20
2 files changed, 11 insertions, 16 deletions
diff --git a/arch/s390/kernel/compat_ioctl.c b/arch/s390/kernel/compat_ioctl.c
index 6504c4e69986..9cf8fd24cd21 100644
--- a/arch/s390/kernel/compat_ioctl.c
+++ b/arch/s390/kernel/compat_ioctl.c
@@ -64,13 +64,6 @@ COMPATIBLE_IOCTL(BIODASDCMFENABLE)
64COMPATIBLE_IOCTL(BIODASDCMFDISABLE) 64COMPATIBLE_IOCTL(BIODASDCMFDISABLE)
65COMPATIBLE_IOCTL(BIODASDREADALLCMB) 65COMPATIBLE_IOCTL(BIODASDREADALLCMB)
66 66
67COMPATIBLE_IOCTL(TUBICMD)
68COMPATIBLE_IOCTL(TUBOCMD)
69COMPATIBLE_IOCTL(TUBGETI)
70COMPATIBLE_IOCTL(TUBGETO)
71COMPATIBLE_IOCTL(TUBSETMOD)
72COMPATIBLE_IOCTL(TUBGETMOD)
73
74COMPATIBLE_IOCTL(TAPE390_DISPLAY) 67COMPATIBLE_IOCTL(TAPE390_DISPLAY)
75 68
76/* s390 doesn't need handlers here */ 69/* s390 doesn't need handlers here */
diff --git a/drivers/s390/char/fs3270.c b/drivers/s390/char/fs3270.c
index 735a7fcdeff5..5f6fa4c67843 100644
--- a/drivers/s390/char/fs3270.c
+++ b/drivers/s390/char/fs3270.c
@@ -319,9 +319,8 @@ fs3270_write(struct file *filp, const char *data, size_t count, loff_t *off)
319/* 319/*
320 * process ioctl commands for the tube driver 320 * process ioctl commands for the tube driver
321 */ 321 */
322static int 322static long
323fs3270_ioctl(struct inode *inode, struct file *filp, 323fs3270_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
324 unsigned int cmd, unsigned long arg)
325{ 324{
326 struct fs3270 *fp; 325 struct fs3270 *fp;
327 struct raw3270_iocb iocb; 326 struct raw3270_iocb iocb;
@@ -331,6 +330,7 @@ fs3270_ioctl(struct inode *inode, struct file *filp,
331 if (!fp) 330 if (!fp)
332 return -ENODEV; 331 return -ENODEV;
333 rc = 0; 332 rc = 0;
333 lock_kernel();
334 switch (cmd) { 334 switch (cmd) {
335 case TUBICMD: 335 case TUBICMD:
336 fp->read_command = arg; 336 fp->read_command = arg;
@@ -356,6 +356,7 @@ fs3270_ioctl(struct inode *inode, struct file *filp,
356 rc = -EFAULT; 356 rc = -EFAULT;
357 break; 357 break;
358 } 358 }
359 unlock_kernel();
359 return rc; 360 return rc;
360} 361}
361 362
@@ -491,12 +492,13 @@ fs3270_close(struct inode *inode, struct file *filp)
491} 492}
492 493
493static struct file_operations fs3270_fops = { 494static struct file_operations fs3270_fops = {
494 .owner = THIS_MODULE, /* owner */ 495 .owner = THIS_MODULE, /* owner */
495 .read = fs3270_read, /* read */ 496 .read = fs3270_read, /* read */
496 .write = fs3270_write, /* write */ 497 .write = fs3270_write, /* write */
497 .ioctl = fs3270_ioctl, /* ioctl */ 498 .unlocked_ioctl = fs3270_ioctl, /* ioctl */
498 .open = fs3270_open, /* open */ 499 .compat_ioctl = fs3270_ioctl, /* ioctl */
499 .release = fs3270_close, /* release */ 500 .open = fs3270_open, /* open */
501 .release = fs3270_close, /* release */
500}; 502};
501 503
502/* 504/*