diff options
author | Martin Schwidefsky <schwidefsky@de.ibm.com> | 2010-05-17 04:00:07 -0400 |
---|---|---|
committer | Martin Schwidefsky <sky@mschwide.boeblingen.de.ibm.com> | 2010-05-17 04:00:16 -0400 |
commit | 58ea91c05346f7c6336e6248b743aa9a8e1c19a9 (patch) | |
tree | aa8fafa3a049a482eb9f2600fec40c03ae10935a /drivers/s390 | |
parent | f73a2b03c59b95a3ee8eebcc127350c77c950e87 (diff) |
[S390] avoid default_llseek in s390 drivers
Use nonseekable_open for a couple of s390 device drivers. This avoids
the use of default_llseek function which has a dependency on the BKL.
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Diffstat (limited to 'drivers/s390')
-rw-r--r-- | drivers/s390/char/fs3270.c | 1 | ||||
-rw-r--r-- | drivers/s390/char/zcore.c | 4 | ||||
-rw-r--r-- | drivers/s390/cio/chsc_sch.c | 1 | ||||
-rw-r--r-- | drivers/s390/cio/css.c | 1 | ||||
-rw-r--r-- | drivers/s390/crypto/zcrypt_api.c | 2 | ||||
-rw-r--r-- | drivers/s390/scsi/zfcp_cfdc.c | 1 |
6 files changed, 7 insertions, 3 deletions
diff --git a/drivers/s390/char/fs3270.c b/drivers/s390/char/fs3270.c index 0eabcca3c92..857dfcb7b35 100644 --- a/drivers/s390/char/fs3270.c +++ b/drivers/s390/char/fs3270.c | |||
@@ -484,6 +484,7 @@ fs3270_open(struct inode *inode, struct file *filp) | |||
484 | raw3270_del_view(&fp->view); | 484 | raw3270_del_view(&fp->view); |
485 | goto out; | 485 | goto out; |
486 | } | 486 | } |
487 | nonseekable_open(inode, filp); | ||
487 | filp->private_data = fp; | 488 | filp->private_data = fp; |
488 | out: | 489 | out: |
489 | mutex_unlock(&fs3270_mutex); | 490 | mutex_unlock(&fs3270_mutex); |
diff --git a/drivers/s390/char/zcore.c b/drivers/s390/char/zcore.c index 7217966f7d3..f5ea3384a4b 100644 --- a/drivers/s390/char/zcore.c +++ b/drivers/s390/char/zcore.c | |||
@@ -445,7 +445,7 @@ static int zcore_memmap_open(struct inode *inode, struct file *filp) | |||
445 | } | 445 | } |
446 | kfree(chunk_array); | 446 | kfree(chunk_array); |
447 | filp->private_data = buf; | 447 | filp->private_data = buf; |
448 | return 0; | 448 | return nonseekable_open(inode, filp); |
449 | } | 449 | } |
450 | 450 | ||
451 | static int zcore_memmap_release(struct inode *inode, struct file *filp) | 451 | static int zcore_memmap_release(struct inode *inode, struct file *filp) |
@@ -473,7 +473,7 @@ static ssize_t zcore_reipl_write(struct file *filp, const char __user *buf, | |||
473 | 473 | ||
474 | static int zcore_reipl_open(struct inode *inode, struct file *filp) | 474 | static int zcore_reipl_open(struct inode *inode, struct file *filp) |
475 | { | 475 | { |
476 | return 0; | 476 | return nonseekable_open(inode, filp); |
477 | } | 477 | } |
478 | 478 | ||
479 | static int zcore_reipl_release(struct inode *inode, struct file *filp) | 479 | static int zcore_reipl_release(struct inode *inode, struct file *filp) |
diff --git a/drivers/s390/cio/chsc_sch.c b/drivers/s390/cio/chsc_sch.c index 3b6f4adc509..a83877c664a 100644 --- a/drivers/s390/cio/chsc_sch.c +++ b/drivers/s390/cio/chsc_sch.c | |||
@@ -803,6 +803,7 @@ static long chsc_ioctl(struct file *filp, unsigned int cmd, | |||
803 | 803 | ||
804 | static const struct file_operations chsc_fops = { | 804 | static const struct file_operations chsc_fops = { |
805 | .owner = THIS_MODULE, | 805 | .owner = THIS_MODULE, |
806 | .open = nonseekable_open, | ||
806 | .unlocked_ioctl = chsc_ioctl, | 807 | .unlocked_ioctl = chsc_ioctl, |
807 | .compat_ioctl = chsc_ioctl, | 808 | .compat_ioctl = chsc_ioctl, |
808 | }; | 809 | }; |
diff --git a/drivers/s390/cio/css.c b/drivers/s390/cio/css.c index da6df048328..ac94ac75145 100644 --- a/drivers/s390/cio/css.c +++ b/drivers/s390/cio/css.c | |||
@@ -1065,6 +1065,7 @@ static ssize_t cio_settle_write(struct file *file, const char __user *buf, | |||
1065 | } | 1065 | } |
1066 | 1066 | ||
1067 | static const struct file_operations cio_settle_proc_fops = { | 1067 | static const struct file_operations cio_settle_proc_fops = { |
1068 | .open = nonseekable_open, | ||
1068 | .write = cio_settle_write, | 1069 | .write = cio_settle_write, |
1069 | }; | 1070 | }; |
1070 | 1071 | ||
diff --git a/drivers/s390/crypto/zcrypt_api.c b/drivers/s390/crypto/zcrypt_api.c index 304caf54997..41e0aaefafd 100644 --- a/drivers/s390/crypto/zcrypt_api.c +++ b/drivers/s390/crypto/zcrypt_api.c | |||
@@ -302,7 +302,7 @@ static ssize_t zcrypt_write(struct file *filp, const char __user *buf, | |||
302 | static int zcrypt_open(struct inode *inode, struct file *filp) | 302 | static int zcrypt_open(struct inode *inode, struct file *filp) |
303 | { | 303 | { |
304 | atomic_inc(&zcrypt_open_count); | 304 | atomic_inc(&zcrypt_open_count); |
305 | return 0; | 305 | return nonseekable_open(inode, filp); |
306 | } | 306 | } |
307 | 307 | ||
308 | /** | 308 | /** |
diff --git a/drivers/s390/scsi/zfcp_cfdc.c b/drivers/s390/scsi/zfcp_cfdc.c index 25d9e0ae9c5..1a2db0a3573 100644 --- a/drivers/s390/scsi/zfcp_cfdc.c +++ b/drivers/s390/scsi/zfcp_cfdc.c | |||
@@ -254,6 +254,7 @@ static long zfcp_cfdc_dev_ioctl(struct file *file, unsigned int command, | |||
254 | } | 254 | } |
255 | 255 | ||
256 | static const struct file_operations zfcp_cfdc_fops = { | 256 | static const struct file_operations zfcp_cfdc_fops = { |
257 | .open = nonseekable_open, | ||
257 | .unlocked_ioctl = zfcp_cfdc_dev_ioctl, | 258 | .unlocked_ioctl = zfcp_cfdc_dev_ioctl, |
258 | #ifdef CONFIG_COMPAT | 259 | #ifdef CONFIG_COMPAT |
259 | .compat_ioctl = zfcp_cfdc_dev_ioctl | 260 | .compat_ioctl = zfcp_cfdc_dev_ioctl |