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

From: David Gibson <[email-masked]>
Date: Mon, 14 Oct 2019 15:52:35 +1100

On Fri, Oct 11, 2019 at 06:25:19PM -0700, Ram Pai wrote:
> From: Thiago Jung Bauermann <[email-masked]>
> 
> 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 <[email-masked]>
> cc: David Gibson <[email-masked]>
> cc: Michael Ellerman <[email-masked]>
> cc: Paul Mackerras <[email-masked]>
> cc: Michael Roth <[email-masked]>
> cc: Alexey Kardashevskiy <[email-masked]>
> cc: Jason Wang <[email-masked]>
> cc: Christoph Hellwig <[email-masked]>
> Suggested-by: Michael S. Tsirkin <[email-masked]>
> Signed-off-by: Ram Pai <[email-masked]>
> Signed-off-by: Thiago Jung Bauermann <[email-masked]>

Reviewed-by: David Gibson <[email-masked]>

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