If so, just disable it unconditionally for mmap.
As mentioned, that's really just a return to original Linux /dev/mmap
semantics: long ago (well, not _that_ long ago) we never used to be able
to mmap() normal kernel memory, because the page counts would get screwed
up on pages that weren't marked PG_Reserved.
So the traditional Linux behavior for mmap() on /dev/mem was always to
only allow it on memory that either had no "struct page *" backing at all,
or that was marked PG_Reserved (ie the ISA hole ay 640k-1M and things like
the BIOS tables etc).
Going back to that doesn't sound horrible.
Linus
--