aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/staging/iio/industrialio-core.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/staging/iio/industrialio-core.c')
-rw-r--r--drivers/staging/iio/industrialio-core.c8
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}