On Fri, 5 Apr 2019 01:16:20 +0200 Halil Pasic <pasic@xxxxxxxxxxxxx> wrote: > We can reduce the number of DMA allocations by pulling the bits > of memory that belongs to virtio_ccw_device and needs to be DMA > memory into a single area. That makes a lot of sense (maybe start with introducing the dma area from the beginning?), but... > > Signed-off-by: Halil Pasic <pasic@xxxxxxxxxxxxx> > --- > drivers/s390/virtio/virtio_ccw.c | 48 ++++++++++++++-------------------------- > 1 file changed, 16 insertions(+), 32 deletions(-) > > diff --git a/drivers/s390/virtio/virtio_ccw.c b/drivers/s390/virtio/virtio_ccw.c > index aa45a6a027ae..7268149f2ee8 100644 > --- a/drivers/s390/virtio/virtio_ccw.c > +++ b/drivers/s390/virtio/virtio_ccw.c > @@ -49,12 +49,12 @@ struct vq_config_block { > struct vcdev_dma_area { > unsigned long indicators; > unsigned long indicators2; > + struct vq_config_block config_block; > + __u8 status; /* TODO check __aligned(8); */ ...I think that needs attention. > }; > > struct virtio_ccw_device { > struct virtio_device vdev; > - __u8 *status; > - dma_addr_t status_dma_addr; > __u8 config[VIRTIO_CCW_CONFIG_SIZE]; > struct ccw_device *cdev; > __u32 curr_io;