A submap can only be created from an entry spanning the entire request
range. In particular, if vm_map_lookup_entry() returns false or the
returned entry contains "end".
I don't think this represents any functional change since we only use
submaps in one place, and that is unaffected.
This is based on a patch submitted by Wuyang Chung.