On 8/4/26 09:50, Paolo Bonzini wrote: > On Mon, Aug 3, 2026 at 5:18 PM David Hildenbrand (Arm) <[email protected]> > wrote: >>> >> I was wondering about the following: >> >> mprotect(PROT_READ) >> >> followed by >> >> mprotect(PROT_READ | PROT_WRITE) >> >> You'd similarly end up without the writable bit in the PTE, and apparently >> there is not really a way >> to recover from this. > > Why not? mprotect_fixup() calls vma_set_page_prot(), the PTE as you > say lacks the writable bit (unless pte_dirty(pte)), and then the next > fault calls .pfn_mkwrite().
Ah, if this works, great. I guess I was confused about your explanation about fixup_user_fault(). So this really only about avoiding the second fault, makes sense thanks! -- Cheers, David
