Re: [PATCH 2/2] virtio_ring: Use DMA API if memory is encrypted

From: David Gibson
Date: Mon Oct 14 2019 - 00:52:55 EST


On Fri, Oct 11, 2019 at 06:25:19PM -0700, Ram Pai wrote:
> From: Thiago Jung Bauermann <bauerman@xxxxxxxxxxxxx>
>
> Normally, virtio enables DMA API with VIRTIO_F_IOMMU_PLATFORM, which must
> be set by both device and guest driver. However, as a hack, when DMA API
> returns physical addresses, guest driver can use the DMA API; even though
> device does not set VIRTIO_F_IOMMU_PLATFORM and just uses physical
> addresses.
>
> Doing this works-around POWER secure guests for which only the bounce
> buffer is accessible to the device, but which don't set
> VIRTIO_F_IOMMU_PLATFORM due to a set of hypervisor and architectural bugs.
> To guard against platform changes, breaking any of these assumptions down
> the road, we check at probe time and fail if that's not the case.
>
> cc: Benjamin Herrenschmidt <benh@xxxxxxxxxxxxxxxxxxx>
> cc: David Gibson <david@xxxxxxxxxxxxxxxxxxxxx>
> cc: Michael Ellerman <mpe@xxxxxxxxxxxxxx>
> cc: Paul Mackerras <paulus@xxxxxxxxxx>
> cc: Michael Roth <mdroth@xxxxxxxxxxxxxxxxxx>
> cc: Alexey Kardashevskiy <aik@xxxxxxxxxxxxx>
> cc: Jason Wang <jasowang@xxxxxxxxxx>
> cc: Christoph Hellwig <hch@xxxxxx>
> Suggested-by: Michael S. Tsirkin <mst@xxxxxxxxxx>
> Signed-off-by: Ram Pai <linuxram@xxxxxxxxxx>
> Signed-off-by: Thiago Jung Bauermann <bauerman@xxxxxxxxxxxxx>

Reviewed-by: David Gibson <david@xxxxxxxxxxxxxxxxxxxxx>

I don't know that this is the most elegant solution possible. But
it's simple, gets the job done and pretty unlikely to cause mysterious
breakage down the road.

--
David Gibson | I'll have my music baroque, and my code
david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_
| _way_ _around_!
http://www.ozlabs.org/~dgibson

Attachment: signature.asc
Description: PGP signature