/dev/mem arch/x86 mm/pat.c break

From: n
Date: Mon Oct 24 2016 - 02:26:44 EST


Hi,

Unless I read C wrong, pat.c seems to break all non-strict devmem use. I
discovered this while reversing a bunch of pci and other low-level
stuff. Here is a link to the fix, http//users.dhp.com/~n/pubs/
the one starting with Linux-86...txt is the correct file, those kernel
bugs in OpenBSD and that are just hilarious enough to keep around..

Oh, here is the full link:
http://users.dhp.com/~n/Linux-x86-mmap-nonstrict-broken.txt

This was first 'nonpromisc_devmem', probably dating back to that
introduction of 1MB limits on mmap(2) way back in the day.. who knows.

Alright, I confess as a kernel programmer Linux isn't my thing, I prefer
Unix particularly BSD and SysV (SVR4 would be sort of both). Thats mostly
because sys_call_table is sysent to me, as are tons of other symbols. But
still, /usr/libexec/cpp seems to have broken /dev/mem
mmap(2) functionality over the non-strict range of memory for.. a long
time.

If I'm wrong, then there is no problem, however I had to fix this to get
things working. Thanks, I realize that #ifdef instead of #ifndef can
cause strictness reversals.. good thing other portions of the kernel had
this correct, or strict would be nonstrict, and vice-versa. Alright,
enjoy..

Reply address: n@xxxxxxx (please).



-n