]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
iio: buffer: hw-consumer: free scan_mask on buffer release
authorFelix Gu <ustc.gu@gmail.com>
Mon, 27 Apr 2026 11:11:39 +0000 (19:11 +0800)
committerJonathan Cameron <jic23@kernel.org>
Tue, 26 May 2026 18:22:56 +0000 (19:22 +0100)
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.

Fixes: 9a2e1233d38c ("iio: buffer: hw-consumer: remove redundant scan_mask flexible array")
Signed-off-by: Felix Gu <ustc.gu@gmail.com>
Reviewed-by: Nuno Sá <nuno.sa@analog.com>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@intel.com>
Cc: <Stable@vger.kernel.org>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
drivers/iio/buffer/industrialio-hw-consumer.c

index 700528c9a0a46714d82d04763b2638775e984ab1..10e912bbf0c5fb3c2a2185830b66c71665e8ce78 100644 (file)
@@ -40,6 +40,8 @@ static void iio_hw_buf_release(struct iio_buffer *buffer)
 {
        struct hw_consumer_buffer *hw_buf =
                iio_buffer_to_hw_consumer_buffer(buffer);
+
+       bitmap_free(buffer->scan_mask);
        kfree(hw_buf);
 }