Re: [PATCH] iio: buffer: hw-consumer: free scan_mask on buffer release

Andy Shevchenko
2026-04-27T15:19:21Z

On Mon, Apr 27, 2026 at 07:11:39PM +0800, Felix Gu wrote:
> The scan_mask lifetime changed in commit 9a2e1233d38c ("iio: buffer:
> hw-consumer: remove redundant scan_mask flexible array").
>
> Before that change, the scan mask storage was embedded in struct
> hw_consumer_buffer, so iio_hw_buf_release() could free the whole
> allocation with a single kfree(hw_buf).
>
> That commit moved the scan mask to a separate bitmap_zalloc() allocation
> stored in buffer.scan_mask, but left iio_hw_buf_release() unchanged.
>
> Free the scan mask in iio_hw_buf_release() before freeing the buffer
> wrapper.

Good catch!

Seems that struct iio_buffer is a foundation class that is used in several
objects and hence each of them is responsible to allocate/free scan_mask
(and others, if required). That's why it's easy to forget to clean up that
properly. I was thinking of a common ground to have that being done in one
place, but it seems unfeasible.

Reviewed-by: Andy Shevchenko <andriy.shevchenko@intel.com>

--
With Best Regards,
Andy Shevchenko