On Tue, 30 Dec 2025 17:40:33 +0100, "Michael S. Tsirkin" <[email protected]> said: > Reorder struct virtio_gpio_line fields to place the DMA buffers (req/res) > last. This eliminates the need for __dma_from_device_aligned_end padding > after the DMA buffer, since struct tail padding naturally protects it, > making the struct a bit smaller. > > Size reduction estimation when ARCH_DMA_MINALIGN=128: > - request is 8 bytes > - response is 2 bytes > - removing _end saves up to 128-6=122 bytes padding to align rxlen field > > Signed-off-by: Michael S. Tsirkin <[email protected]> > --- > drivers/gpio/gpio-virtio.c | 5 ++--- > 1 file changed, 2 insertions(+), 3 deletions(-) > > diff --git a/drivers/gpio/gpio-virtio.c b/drivers/gpio/gpio-virtio.c > index 32b578b46df8..8b30a94e4625 100644 > --- a/drivers/gpio/gpio-virtio.c > +++ b/drivers/gpio/gpio-virtio.c > @@ -26,12 +26,11 @@ struct virtio_gpio_line { > struct mutex lock; /* Protects line operation */ > struct completion completion; > > + unsigned int rxlen; > + > __dma_from_device_aligned_begin > struct virtio_gpio_request req; > struct virtio_gpio_response res; > - > - __dma_from_device_aligned_end > - unsigned int rxlen; > }; > > struct vgpio_irq_line { > -- > MST > >
Acked-by: Bartosz Golaszewski <[email protected]>
