Re: [PATCH 2/2] virtio/virtio_ring: Fix the dma_max_mapping_size call

From: Christoph Hellwig
Date: Tue Jul 23 2019 - 11:38:54 EST


On Mon, Jul 22, 2019 at 04:36:09PM +0100, Robin Murphy wrote:
>> diff --git a/drivers/virtio/virtio_ring.c b/drivers/virtio/virtio_ring.c
>> index c8be1c4f5b55..37c143971211 100644
>> --- a/drivers/virtio/virtio_ring.c
>> +++ b/drivers/virtio/virtio_ring.c
>> @@ -262,7 +262,7 @@ size_t virtio_max_dma_size(struct virtio_device *vdev)
>> {
>> size_t max_segment_size = SIZE_MAX;
>> - if (vring_use_dma_api(vdev))
>> + if (vring_use_dma_api(vdev) && vdev->dev.dma_mask)
>
> Hmm, might it make sense to roll that check up into vring_use_dma_api()
> itself? After all, if the device has no mask then it's likely that other
> DMA API ops wouldn't really work as expected either.

Makes sense to me.