VIRT_IN_DMAP macro checks only that a virtual address falls into
the [dmap_virt_base, dmap_virt_max] region. This region is not guaranteed
to be contiguous, there may be physicall addresses in it that
are not part of the hardware mem segments list. When accessing
such addresses through /dev/mem kernel goes into permanent pmap_fault
loop and the process that attempted the access gets into unkillable state.
To fix this behavior check if the fault address is in DMAP. These
addresses should not fault by definition, if it happens it's an
indication of an error.