I don't see how VM_PFNMAP alone can tell us anything about the
access properties supported by a device address range. Either way,
it's the driver setting vm_page_prot or some VM_* flag. KVM has no
clue, it's just a memory slot.
I think David's point about VM_PFNMAP was to avoid some of the
pfn_valid() logic. If we get VM_PFNMAP we just assume it is non-struct
page and follow the VMA's pgprot.
Exactly what I meant.
If we only expect DEVICE stuff in VM_PFNMAP, then we can limit all the
weirdness (and figuring out what todo using pgprot etc) to exactly that.
VM_IO without VM_PFNMAP might be interesting; not sure if we even want
to support that here.
--
Cheers,
David / dhildenb