On Sun, Nov 10, 2019 at 07:40:06PM +0000, David Gibson wrote: > On Fri, Nov 08, 2019 at 03:00:10PM -0800, Ram Pai wrote: > > The hypervisor needs to access the contents of the page holding the TCE > > entries while setting up the TCE entries in the IOMMU's TCE table. > > > > For SecureVMs, since this page is encrypted, the hypervisor cannot > > access valid entries. Share the page with the hypervisor. This ensures > > that the hypervisor sees those valid entries. > > > > Why is this safe? > > The page contains only TCE entries; not any sensitive data > > belonging to the Secure VM. The hypervisor has a genuine need to know > > the value of the TCE entries, without which it will not be able to > > DMA to/from the pages pointed to by the TCE entries. In a Secure > > VM the TCE entries point to pages that are also shared with the > > hypervisor; example: pages containing bounce buffers. > > The bit that may not be obvious to reviewers from the above is this: > > This is *not* a page of "live" TCEs which are actively used for > translation. Instead this is just a transient buffer with a batch of > TCEs to set, passed to the hypervisor with the H_PUT_TCE_INDIRECT call.
That is true. I should have stated that explicitly. Thanks. will update the commit log. RP