Re: [PATCHv3] gpio: virtio: remove one kcalloc
From: Viresh Kumar
Date: Fri Mar 13 2026 - 02:13:15 EST
On 12-03-26, 12:37, Rosen Penev wrote:
> A flexible array member can be used to combine allocations.
>
> Signed-off-by: Rosen Penev <rosenp@xxxxxxxxx>
> Acked-by: Viresh Kumar <viresh.kumar@xxxxxxxxxx>
> ---
> v3: add counting field for __counted_by.
> v2: add space in struct
> drivers/gpio/gpio-virtio.c | 14 +++++++-------
> 1 file changed, 7 insertions(+), 7 deletions(-)
>
> diff --git a/drivers/gpio/gpio-virtio.c b/drivers/gpio/gpio-virtio.c
> index ed6e0e90fa8a..57d0eb532c3c 100644
> --- a/drivers/gpio/gpio-virtio.c
> +++ b/drivers/gpio/gpio-virtio.c
> @@ -52,7 +52,6 @@ struct virtio_gpio {
> struct virtio_device *vdev;
> struct mutex lock; /* Protects virtqueue operation */
> struct gpio_chip gc;
> - struct virtio_gpio_line *lines;
> struct virtqueue *request_vq;
>
> /* irq support */
> @@ -60,6 +59,9 @@ struct virtio_gpio {
> struct mutex irq_lock; /* Protects irq operation */
> raw_spinlock_t eventq_lock; /* Protects queuing of the buffer */
> struct vgpio_irq_line *irq_lines;
> +
> + u16 ngpio;
> + struct virtio_gpio_line lines[] __counted_by(ngpio);
> };
I wonder if it is worth it anymore. Why combining allocations is better when we
are ending up using more memory ?
--
viresh