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; |