diff options
| -rw-r--r-- | drivers/iio/industrialio-buffer.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/drivers/iio/industrialio-buffer.c b/drivers/iio/industrialio-buffer.c index e73033f3839a..5862c88ed5ad 100644 --- a/drivers/iio/industrialio-buffer.c +++ b/drivers/iio/industrialio-buffer.c | |||
| @@ -528,8 +528,15 @@ int iio_update_buffers(struct iio_dev *indio_dev, | |||
| 528 | * Note can only occur when adding a buffer. | 528 | * Note can only occur when adding a buffer. |
| 529 | */ | 529 | */ |
| 530 | list_del(&insert_buffer->buffer_list); | 530 | list_del(&insert_buffer->buffer_list); |
| 531 | indio_dev->active_scan_mask = old_mask; | 531 | if (old_mask) { |
| 532 | success = -EINVAL; | 532 | indio_dev->active_scan_mask = old_mask; |
| 533 | success = -EINVAL; | ||
| 534 | } | ||
| 535 | else { | ||
| 536 | kfree(compound_mask); | ||
| 537 | ret = -EINVAL; | ||
| 538 | goto error_ret; | ||
| 539 | } | ||
| 533 | } | 540 | } |
| 534 | } else { | 541 | } else { |
| 535 | indio_dev->active_scan_mask = compound_mask; | 542 | indio_dev->active_scan_mask = compound_mask; |
