Messages in this thread | | | Date | Wed, 24 May 2023 02:28:51 +0300 | From | kirill.shutemov@linux ... | Subject | Re: [PATCH v6 2/6] x86/tdx: Support vmalloc() for tdx_enc_status_changed() |
| |
On Tue, May 23, 2023 at 03:43:15PM -0700, Dave Hansen wrote: > On 5/23/23 15:37, kirill.shutemov@linux.intel.com wrote: > >> How does this work with load_unaligned_zeropad()? Couldn't it be > >> running around poking at one of these vmalloc()'d pages via the direct > >> map during a shared->private conversion before the page has been accepted? > > Alias processing in __change_page_attr_set_clr() will change direct > > mapping if you call it on vmalloc()ed memory. I think we are safe wrt > > load_unaligned_zeropad() here. > > We're *eventually* OK: > > > /* Notify hypervisor that we are about to set/clr encryption attribute. */ > > x86_platform.guest.enc_status_change_prepare(addr, numpages, enc); > > > > ret = __change_page_attr_set_clr(&cpa, 1); > > But what about in the middle between enc_status_change_prepare() and > __change_page_attr_set_clr()? Don't the direct map and the > shared/private status of the page diverge in there?
Hmm. Maybe we would need to go through making the range in direct mapping non-present before notifying VMM about the change.
I need to look at this again in the morning.
-- Kiryl Shutsemau / Kirill A. Shutemov
| |