On 5/23/23 15:37, kirill.shutemov@xxxxxxxxxxxxxxx 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?