mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-07-25 10:53:34 -04:00
iio: buffer: hw-consumer: remove redundant scan_mask flexible array
The scan_mask flexible array member in hw_consumer_buffer duplicates the scan_mask pointer already present in struct iio_buffer. Remove it and allocate the bitmap directly with bitmap_zalloc(), assigning it to buf->buffer.scan_mask. This simplifies the code and there's no need for the flex array allocation. Signed-off-by: Nuno Sá <nuno.sa@analog.com> Reviewed-by: Andy Shevchenko <andriy.shevchenko@intel.com> Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
This commit is contained in:
committed by
Jonathan Cameron
parent
d6f2eac644
commit
9a2e1233d3
@@ -28,7 +28,6 @@ struct hw_consumer_buffer {
|
||||
struct list_head head;
|
||||
struct iio_dev *indio_dev;
|
||||
struct iio_buffer buffer;
|
||||
long scan_mask[];
|
||||
};
|
||||
|
||||
static struct hw_consumer_buffer *iio_buffer_to_hw_consumer_buffer(
|
||||
@@ -52,7 +51,6 @@ static const struct iio_buffer_access_funcs iio_hw_buf_access = {
|
||||
static struct hw_consumer_buffer *iio_hw_consumer_get_buffer(
|
||||
struct iio_hw_consumer *hwc, struct iio_dev *indio_dev)
|
||||
{
|
||||
unsigned int mask_longs = BITS_TO_LONGS(iio_get_masklength(indio_dev));
|
||||
struct hw_consumer_buffer *buf;
|
||||
|
||||
list_for_each_entry(buf, &hwc->buffers, head) {
|
||||
@@ -60,13 +58,18 @@ static struct hw_consumer_buffer *iio_hw_consumer_get_buffer(
|
||||
return buf;
|
||||
}
|
||||
|
||||
buf = kzalloc_flex(*buf, scan_mask, mask_longs);
|
||||
buf = kzalloc_obj(*buf);
|
||||
if (!buf)
|
||||
return NULL;
|
||||
|
||||
buf->buffer.access = &iio_hw_buf_access;
|
||||
buf->indio_dev = indio_dev;
|
||||
buf->buffer.scan_mask = buf->scan_mask;
|
||||
buf->buffer.scan_mask = bitmap_zalloc(iio_get_masklength(indio_dev),
|
||||
GFP_KERNEL);
|
||||
if (!buf->buffer.scan_mask) {
|
||||
kfree(buf);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
iio_buffer_init(&buf->buffer);
|
||||
list_add_tail(&buf->head, &hwc->buffers);
|
||||
|
||||
Reference in New Issue
Block a user