On Fri, Nov 20, 2020, Rick Edgecombe wrote: > +struct perm_allocation { > + struct page **pages; > + virtual_perm cur_perm; > + virtual_perm orig_perm; > + struct vm_struct *area; > + unsigned long offset; > + unsigned long size; > + void *writable; > +}; > + > +/* > + * Allocate a special permission kva region. The region may not be mapped > + * until a call to perm_writable_finish(). A writable region will be mapped > + * immediately at the address returned by perm_writable_addr(). The allocation > + * will be made between the start and end virtual addresses. > + */ > +struct perm_allocation *perm_alloc(unsigned long vstart, unsigned long vend, unsigned long page_cnt, > + virtual_perm perms); IMO, 'perm' as the root namespace is too generic, and perm_ is already very prevelant throughout the kernel. E.g. it's not obvious when looking at the callers that perm_alloc() is the first step in setting up an alternate kernel VA->PA mapping. I don't have a suggestion for a more intuitive name, but in the absence of a perfect name, I'd vote for an acronym that is easy to grep. Something like pvmap? That isn't currently used in the kernel, though I can't help but read it as "paravirt map"...