diff options
-rw-r--r-- | drivers/infiniband/core/ucm.c | 3 | ||||
-rw-r--r-- | drivers/infiniband/core/ucma.c | 4 | ||||
-rw-r--r-- | drivers/infiniband/core/user_mad.c | 12 | ||||
-rw-r--r-- | drivers/infiniband/core/uverbs_main.c | 11 |
4 files changed, 20 insertions, 10 deletions
diff --git a/drivers/infiniband/core/ucm.c b/drivers/infiniband/core/ucm.c index 512b1c43460c..46474842cfe9 100644 --- a/drivers/infiniband/core/ucm.c +++ b/drivers/infiniband/core/ucm.c | |||
@@ -1181,7 +1181,7 @@ static int ib_ucm_open(struct inode *inode, struct file *filp) | |||
1181 | file->filp = filp; | 1181 | file->filp = filp; |
1182 | file->device = container_of(inode->i_cdev, struct ib_ucm_device, cdev); | 1182 | file->device = container_of(inode->i_cdev, struct ib_ucm_device, cdev); |
1183 | 1183 | ||
1184 | return 0; | 1184 | return nonseekable_open(inode, filp); |
1185 | } | 1185 | } |
1186 | 1186 | ||
1187 | static int ib_ucm_close(struct inode *inode, struct file *filp) | 1187 | static int ib_ucm_close(struct inode *inode, struct file *filp) |
@@ -1229,6 +1229,7 @@ static const struct file_operations ucm_fops = { | |||
1229 | .release = ib_ucm_close, | 1229 | .release = ib_ucm_close, |
1230 | .write = ib_ucm_write, | 1230 | .write = ib_ucm_write, |
1231 | .poll = ib_ucm_poll, | 1231 | .poll = ib_ucm_poll, |
1232 | .llseek = no_llseek, | ||
1232 | }; | 1233 | }; |
1233 | 1234 | ||
1234 | static ssize_t show_ibdev(struct device *dev, struct device_attribute *attr, | 1235 | static ssize_t show_ibdev(struct device *dev, struct device_attribute *attr, |
diff --git a/drivers/infiniband/core/ucma.c b/drivers/infiniband/core/ucma.c index 46185084121e..ac7edc24165c 100644 --- a/drivers/infiniband/core/ucma.c +++ b/drivers/infiniband/core/ucma.c | |||
@@ -1220,7 +1220,8 @@ static int ucma_open(struct inode *inode, struct file *filp) | |||
1220 | 1220 | ||
1221 | filp->private_data = file; | 1221 | filp->private_data = file; |
1222 | file->filp = filp; | 1222 | file->filp = filp; |
1223 | return 0; | 1223 | |
1224 | return nonseekable_open(inode, filp); | ||
1224 | } | 1225 | } |
1225 | 1226 | ||
1226 | static int ucma_close(struct inode *inode, struct file *filp) | 1227 | static int ucma_close(struct inode *inode, struct file *filp) |
@@ -1250,6 +1251,7 @@ static const struct file_operations ucma_fops = { | |||
1250 | .release = ucma_close, | 1251 | .release = ucma_close, |
1251 | .write = ucma_write, | 1252 | .write = ucma_write, |
1252 | .poll = ucma_poll, | 1253 | .poll = ucma_poll, |
1254 | .llseek = no_llseek, | ||
1253 | }; | 1255 | }; |
1254 | 1256 | ||
1255 | static struct miscdevice ucma_misc = { | 1257 | static struct miscdevice ucma_misc = { |
diff --git a/drivers/infiniband/core/user_mad.c b/drivers/infiniband/core/user_mad.c index e7db054fb1c8..6babb72b39fc 100644 --- a/drivers/infiniband/core/user_mad.c +++ b/drivers/infiniband/core/user_mad.c | |||
@@ -781,7 +781,7 @@ static int ib_umad_open(struct inode *inode, struct file *filp) | |||
781 | { | 781 | { |
782 | struct ib_umad_port *port; | 782 | struct ib_umad_port *port; |
783 | struct ib_umad_file *file; | 783 | struct ib_umad_file *file; |
784 | int ret = 0; | 784 | int ret; |
785 | 785 | ||
786 | port = container_of(inode->i_cdev, struct ib_umad_port, cdev); | 786 | port = container_of(inode->i_cdev, struct ib_umad_port, cdev); |
787 | if (port) | 787 | if (port) |
@@ -814,6 +814,8 @@ static int ib_umad_open(struct inode *inode, struct file *filp) | |||
814 | 814 | ||
815 | list_add_tail(&file->port_list, &port->file_list); | 815 | list_add_tail(&file->port_list, &port->file_list); |
816 | 816 | ||
817 | ret = nonseekable_open(inode, filp); | ||
818 | |||
817 | out: | 819 | out: |
818 | mutex_unlock(&port->file_mutex); | 820 | mutex_unlock(&port->file_mutex); |
819 | return ret; | 821 | return ret; |
@@ -866,7 +868,8 @@ static const struct file_operations umad_fops = { | |||
866 | .compat_ioctl = ib_umad_compat_ioctl, | 868 | .compat_ioctl = ib_umad_compat_ioctl, |
867 | #endif | 869 | #endif |
868 | .open = ib_umad_open, | 870 | .open = ib_umad_open, |
869 | .release = ib_umad_close | 871 | .release = ib_umad_close, |
872 | .llseek = no_llseek, | ||
870 | }; | 873 | }; |
871 | 874 | ||
872 | static int ib_umad_sm_open(struct inode *inode, struct file *filp) | 875 | static int ib_umad_sm_open(struct inode *inode, struct file *filp) |
@@ -903,7 +906,7 @@ static int ib_umad_sm_open(struct inode *inode, struct file *filp) | |||
903 | 906 | ||
904 | filp->private_data = port; | 907 | filp->private_data = port; |
905 | 908 | ||
906 | return 0; | 909 | return nonseekable_open(inode, filp); |
907 | 910 | ||
908 | fail: | 911 | fail: |
909 | kref_put(&port->umad_dev->ref, ib_umad_release_dev); | 912 | kref_put(&port->umad_dev->ref, ib_umad_release_dev); |
@@ -933,7 +936,8 @@ static int ib_umad_sm_close(struct inode *inode, struct file *filp) | |||
933 | static const struct file_operations umad_sm_fops = { | 936 | static const struct file_operations umad_sm_fops = { |
934 | .owner = THIS_MODULE, | 937 | .owner = THIS_MODULE, |
935 | .open = ib_umad_sm_open, | 938 | .open = ib_umad_sm_open, |
936 | .release = ib_umad_sm_close | 939 | .release = ib_umad_sm_close, |
940 | .llseek = no_llseek, | ||
937 | }; | 941 | }; |
938 | 942 | ||
939 | static struct ib_client umad_client = { | 943 | static struct ib_client umad_client = { |
diff --git a/drivers/infiniband/core/uverbs_main.c b/drivers/infiniband/core/uverbs_main.c index fb3526254426..ec83e9fe387b 100644 --- a/drivers/infiniband/core/uverbs_main.c +++ b/drivers/infiniband/core/uverbs_main.c | |||
@@ -369,7 +369,8 @@ static const struct file_operations uverbs_event_fops = { | |||
369 | .read = ib_uverbs_event_read, | 369 | .read = ib_uverbs_event_read, |
370 | .poll = ib_uverbs_event_poll, | 370 | .poll = ib_uverbs_event_poll, |
371 | .release = ib_uverbs_event_close, | 371 | .release = ib_uverbs_event_close, |
372 | .fasync = ib_uverbs_event_fasync | 372 | .fasync = ib_uverbs_event_fasync, |
373 | .llseek = no_llseek, | ||
373 | }; | 374 | }; |
374 | 375 | ||
375 | void ib_uverbs_comp_handler(struct ib_cq *cq, void *cq_context) | 376 | void ib_uverbs_comp_handler(struct ib_cq *cq, void *cq_context) |
@@ -623,7 +624,7 @@ static int ib_uverbs_open(struct inode *inode, struct file *filp) | |||
623 | 624 | ||
624 | filp->private_data = file; | 625 | filp->private_data = file; |
625 | 626 | ||
626 | return 0; | 627 | return nonseekable_open(inode, filp); |
627 | 628 | ||
628 | err_module: | 629 | err_module: |
629 | module_put(dev->ib_dev->owner); | 630 | module_put(dev->ib_dev->owner); |
@@ -651,7 +652,8 @@ static const struct file_operations uverbs_fops = { | |||
651 | .owner = THIS_MODULE, | 652 | .owner = THIS_MODULE, |
652 | .write = ib_uverbs_write, | 653 | .write = ib_uverbs_write, |
653 | .open = ib_uverbs_open, | 654 | .open = ib_uverbs_open, |
654 | .release = ib_uverbs_close | 655 | .release = ib_uverbs_close, |
656 | .llseek = no_llseek, | ||
655 | }; | 657 | }; |
656 | 658 | ||
657 | static const struct file_operations uverbs_mmap_fops = { | 659 | static const struct file_operations uverbs_mmap_fops = { |
@@ -659,7 +661,8 @@ static const struct file_operations uverbs_mmap_fops = { | |||
659 | .write = ib_uverbs_write, | 661 | .write = ib_uverbs_write, |
660 | .mmap = ib_uverbs_mmap, | 662 | .mmap = ib_uverbs_mmap, |
661 | .open = ib_uverbs_open, | 663 | .open = ib_uverbs_open, |
662 | .release = ib_uverbs_close | 664 | .release = ib_uverbs_close, |
665 | .llseek = no_llseek, | ||
663 | }; | 666 | }; |
664 | 667 | ||
665 | static struct ib_client uverbs_client = { | 668 | static struct ib_client uverbs_client = { |