iio:callback buffer: free the scan_mask
Jonathan Cameron
maintainerPATCH 1/1 iio:callback buffer: free the scan_mask
Reported-by Michał Mirosław <[email protected]>
Signed-off-by Jonathan Cameron <[email protected]>
---
As per original discussion I've now put together a minimal patch. The rework suggested was reasonable but had no place in a fix patch.
drivers/iio/buffer_cb.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-)
drivers/iio/buffer_cb.c +4 -1
@@ -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); }
Signature · 1 line
1.8.2.3
Quoted 2 lines · Jonathan Cameron
Reported-by Michał Mirosław <[email protected]>Signed-off-by Jonathan Cameron <[email protected]>
Applied to fixes-togreg branch of iio.git
Sometimes I think no one cares, then I remember that there are no in tree users of this code so probably no one does ;)
Quoted 38 lines
---
As per original discussion I've now put together a minimal patch. The rework suggested was reasonable but had no place in a fix patch.drivers/iio/buffer_cb.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-)drivers/iio/buffer_cb.c +4
-1@@ -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); }