Re: [PATCH 02/10] virtio/s390: DMA support for virtio-ccw

Cornelia Huck
2019-05-03T09:31:42Z

On Fri, 26 Apr 2019 20:32:37 +0200
Halil Pasic <pasic@linux.ibm.com> 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@linux.ibm.com>
> ---
> 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@redhat.com>

Also 5.2 material, I think.