On Fri, 26 Apr 2019 20:32:37 +0200 Halil Pasic <pasic@xxxxxxxxxxxxx> wrote: > Currently virtio-ccw devices do not work if the device has > VIRTIO_F_IOMMU_PLATFORM. In future we do want to support DMA API with > virtio-ccw. > > Let us do the plumbing, so the feature VIRTIO_F_IOMMU_PLATFORM works > with virtio-ccw. > > Let us also switch from legacy avail/used accessors to the DMA aware > ones (even if it isn't strictly necessary), and remove the legacy > accessors (we were the last users). > > Signed-off-by: Halil Pasic <pasic@xxxxxxxxxxxxx> > --- > drivers/s390/virtio/virtio_ccw.c | 22 +++++++++++++++------- > include/linux/virtio.h | 17 ----------------- > 2 files changed, 15 insertions(+), 24 deletions(-) > > diff --git a/drivers/s390/virtio/virtio_ccw.c b/drivers/s390/virtio/virtio_ccw.c > index 2c66941ef3d0..42832a164546 100644 > --- a/drivers/s390/virtio/virtio_ccw.c > +++ b/drivers/s390/virtio/virtio_ccw.c (...) > @@ -1258,6 +1257,16 @@ static int virtio_ccw_online(struct ccw_device *cdev) > ret = -ENOMEM; > goto out_free; > } > + > + vcdev->vdev.dev.parent = &cdev->dev; > + cdev->dev.dma_mask = &vcdev->dma_mask; > + /* we are fine with common virtio infrastructure using 64 bit DMA */ > + ret = dma_set_mask_and_coherent(&cdev->dev, DMA_BIT_MASK(64)); > + if (ret) { > + dev_warn(&cdev->dev, "Failed to enable 64-bit DMA.\n"); Drop the trailing period? > + goto out_free; > + } > + > vcdev->config_block = kzalloc(sizeof(*vcdev->config_block), > GFP_DMA | GFP_KERNEL); > if (!vcdev->config_block) { (...) Reviewed-by: Cornelia Huck <cohuck@xxxxxxxxxx> Also 5.2 material, I think.