On Fri, 2024-01-05 at 10:30 -0800, mhkelley58@xxxxxxxxx wrote: > + * It is also used in callbacks for CoCo VM page transitions between > private > + * and shared because it works when the PRESENT bit is not set in > the leaf > + * PTE. In such cases, the state of the PTEs, including the PFN, is > otherwise > + * known to be valid, so the returned physical address is correct. > The similar > + * function vmalloc_to_pfn() can't be used because it requires the > PRESENT bit. I'm not sure about this comment. It is mostly about callers far away and other functions in vmalloc. Probably a decent chance to get stale. It also kind of begs the question of why vmalloc_to_pfn() requires the present bit in the leaf. It seems the first part of the comment is about why this is needed when __pa() exists. One reason given is that __pa() doesn't work with vmalloc memory. Then the next bit talks about another similar function that works with vmalloc memory. So the comment is a risk to get stale, and leaves me a little confused why this function exists. I think the reason is because vmalloc_to_pfn() *only* works with vmalloc memory and this is needed to work on other alias mappings.