Re: [PATCH 4/5] misc: vop: set VIRTIO_F_ACCESS_PLATFORM for nocoherent platform

From: Greg KH
Date: Fri Sep 25 2020 - 08:16:30 EST


On Fri, Sep 25, 2020 at 03:26:29PM +0800, Sherry Sun wrote:
> Set VIRTIO_F_ACCESS_PLATFORM feature for nocoherent platform, since
> it needs the DMA API for virtio.
>
> Signed-off-by: Sherry Sun <sherry.sun@xxxxxxx>
> Signed-off-by: Joakim Zhang <qiangqing.zhang@xxxxxxx>
> ---
> drivers/misc/mic/vop/vop_main.c | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/drivers/misc/mic/vop/vop_main.c b/drivers/misc/mic/vop/vop_main.c
> index d3645122c983..d609f0dc6124 100644
> --- a/drivers/misc/mic/vop/vop_main.c
> +++ b/drivers/misc/mic/vop/vop_main.c
> @@ -125,6 +125,9 @@ static void vop_transport_features(struct virtio_device *vdev)
> * creates virtio rings on preallocated memory.
> */
> __virtio_clear_bit(vdev, VIRTIO_F_RING_PACKED);
> +
> + if (!dev_is_dma_coherent(vdev->dev.parent))
> + __virtio_set_bit(vdev, VIRTIO_F_ACCESS_PLATFORM);

Why look at the parent and not the device itself?