diff options
Diffstat (limited to 'drivers/s390/char/fs3270.c')
-rw-r--r-- | drivers/s390/char/fs3270.c | 20 |
1 files changed, 11 insertions, 9 deletions
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 | */ |
322 | static int | 322 | static long |
323 | fs3270_ioctl(struct inode *inode, struct file *filp, | 323 | fs3270_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 | ||
493 | static struct file_operations fs3270_fops = { | 494 | static 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 | /* |