|
@@ -64,7 +64,7 @@ struct iio_cb_buffer *iio_channel_get_all_cb(struct device *dev,
|
|
|
while (chan->indio_dev) {
|
|
|
if (chan->indio_dev != indio_dev) {
|
|
|
ret = -EINVAL;
|
|
|
- goto error_release_channels;
|
|
|
+ goto error_free_scan_mask;
|
|
|
}
|
|
|
set_bit(chan->channel->scan_index,
|
|
|
cb_buff->buffer.scan_mask);
|
|
@@ -73,6 +73,8 @@ struct iio_cb_buffer *iio_channel_get_all_cb(struct device *dev,
|
|
|
|
|
|
return cb_buff;
|
|
|
|
|
|
+error_free_scan_mask:
|
|
|
+ kfree(cb_buff->buffer.scan_mask);
|
|
|
error_release_channels:
|
|
|
iio_channel_release_all(cb_buff->channels);
|
|
|
error_free_cb_buff:
|
|
@@ -100,6 +102,7 @@ EXPORT_SYMBOL_GPL(iio_channel_stop_all_cb);
|
|
|
|
|
|
void iio_channel_release_all_cb(struct iio_cb_buffer *cb_buff)
|
|
|
{
|
|
|
+ kfree(cb_buff->buffer.scan_mask);
|
|
|
iio_channel_release_all(cb_buff->channels);
|
|
|
kfree(cb_buff);
|
|
|
}
|