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
