Messages in this thread | | | Subject | Re: [PATCH v4 0/2] Fix SEV user-space mapping of unencrypted coherent memory | From | Thomas Hellström (VMware) <> | Date | Mon, 16 Mar 2020 13:42:39 +0100 |
| |
Dave, Ingo
On 3/4/20 12:45 PM, Thomas Hellström (VMware) wrote: > This patchset fixes dma_mmap_coherent() mapping of unencrypted memory in > otherwise encrypted environments, where it would incorrectly map that memory as > encrypted. > > With SEV and sometimes with SME encryption, The dma api coherent memory is > typically unencrypted, meaning the linear kernel map has the encryption > bit cleared. However, default page protection returned from vm_get_page_prot() > has the encryption bit set. So to compute the correct page protection we need > to clear the encryption bit. > > Also, in order for the encryption bit setting to survive across do_mmap() and > mprotect_fixup(), We need to make pgprot_modify() aware of it and not touch it. > Therefore make sme_me_mask part of _PAGE_CHG_MASK and make sure > pgprot_modify() preserves also cleared bits that are part of _PAGE_CHG_MASK, > not just set bits. The use of pgprot_modify() is currently quite limited and > easy to audit. > > (Note that the encryption status is not logically encoded in the pfn but in > the page protection even if an address line in the physical address is used). > > The patchset has seen some sanity testing by exporting dma_pgprot() and > using it in the vmwgfx mmap handler with SEV enabled. > > As far as I can tell there are no current users of dma_mmap_coherent() with > SEV or SME encryption which means that there is no need to CC stable. > > Changes since: > RFC: > - Make sme_me_mask port of _PAGE_CHG_MASK rather than using it by its own in > pgprot_modify(). > v1: > - Clarify which use-cases this patchset actually fixes. > v2: > - Use _PAGE_ENC instead of sme_me_mask in the definition of _PAGE_CHG_MASK > v3: > - Added RB from Dave Hansen. > > Cc: Dave Hansen <dave.hansen@linux.intel.com> > Cc: Andy Lutomirski <luto@kernel.org> > Cc: Peter Zijlstra <peterz@infradead.org> > Cc: Thomas Gleixner <tglx@linutronix.de> > Cc: Ingo Molnar <mingo@redhat.com> > Cc: Borislav Petkov <bp@alien8.de> > Cc: "H. Peter Anvin" <hpa@zytor.com> > Cc: Christoph Hellwig <hch@infradead.org> > Cc: Christian König <christian.koenig@amd.com> > Cc: Marek Szyprowski <m.szyprowski@samsung.com> > Cc: Tom Lendacky <thomas.lendacky@amd.com> Could we merge this small series through x86? Patch 2/2 has a
Reviewed-by: Christoph Hellwig<hch@lst.de>
Please let me know if you want me to resend with that RB added.
Thanks, Thomas
| |