diff options
Diffstat (limited to 'drivers/staging/iio/industrialio-core.c')
-rw-r--r-- | drivers/staging/iio/industrialio-core.c | 8 |
1 files changed, 1 insertions, 7 deletions
diff --git a/drivers/staging/iio/industrialio-core.c b/drivers/staging/iio/industrialio-core.c index 12d1576a076..19f897f3c85 100644 --- a/drivers/staging/iio/industrialio-core.c +++ b/drivers/staging/iio/industrialio-core.c | |||
@@ -1083,18 +1083,13 @@ static int iio_chrdev_open(struct inode *inode, struct file *filp) | |||
1083 | { | 1083 | { |
1084 | struct iio_dev *indio_dev = container_of(inode->i_cdev, | 1084 | struct iio_dev *indio_dev = container_of(inode->i_cdev, |
1085 | struct iio_dev, chrdev); | 1085 | struct iio_dev, chrdev); |
1086 | unsigned int ret; | ||
1087 | 1086 | ||
1088 | if (test_and_set_bit(IIO_BUSY_BIT_POS, &indio_dev->flags)) | 1087 | if (test_and_set_bit(IIO_BUSY_BIT_POS, &indio_dev->flags)) |
1089 | return -EBUSY; | 1088 | return -EBUSY; |
1090 | 1089 | ||
1091 | filp->private_data = indio_dev; | 1090 | filp->private_data = indio_dev; |
1092 | 1091 | ||
1093 | ret = iio_chrdev_buffer_open(indio_dev); | 1092 | return 0; |
1094 | if (ret < 0) | ||
1095 | clear_bit(IIO_BUSY_BIT_POS, &indio_dev->flags); | ||
1096 | |||
1097 | return ret; | ||
1098 | } | 1093 | } |
1099 | 1094 | ||
1100 | /** | 1095 | /** |
@@ -1104,7 +1099,6 @@ static int iio_chrdev_release(struct inode *inode, struct file *filp) | |||
1104 | { | 1099 | { |
1105 | struct iio_dev *indio_dev = container_of(inode->i_cdev, | 1100 | struct iio_dev *indio_dev = container_of(inode->i_cdev, |
1106 | struct iio_dev, chrdev); | 1101 | struct iio_dev, chrdev); |
1107 | iio_chrdev_buffer_release(indio_dev); | ||
1108 | clear_bit(IIO_BUSY_BIT_POS, &indio_dev->flags); | 1102 | clear_bit(IIO_BUSY_BIT_POS, &indio_dev->flags); |
1109 | return 0; | 1103 | return 0; |
1110 | } | 1104 | } |