mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs.git
synced 2026-10-31 06:14:39 +01: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á <[email protected]> Reviewed-by: Andy Shevchenko <[email protected]> Signed-off-by: Jonathan Cameron <[email protected]>
This commit is contained in:
1 parent
d6f2eac644
commit
9a2e1233d3
1 file changed
+7
-4
@@ -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