- why have those ugly special cases for bootup defines. kmap() is a no-op
on 1:1 pages, so all those "arch/i386/mm/init.c" games are totally
unnecessary if you just have the pages in low memory. That gets rid of
much of it.
- do the highmem pte bouncing only for CONFIG_X86_PAE: with less then 4GB
of RAM this doesn't seem to matter all that much (rule of thumb: we
need about 1% of memory for page tables). Again, this will simplify
things, as it will make other architectures not have to worry about the
(And it's really CONFIG_X86_PAE that makes page tables twice as big, so
PAE increases the lowmem pressure for two independent reasons: twice as
much memory in page tables _and_ larger amounts of memory to map).
- please don't do that "pte_offset_atomic_irq()" have special support in
the header files: it is _not_ a generic operation, and it is only used
by the x86 page fault logic. For that reason, I would suggest moving
all that logic out of the header files, and into i386/mm/fault.c,
something along the lines of
pte = pte_offset_nokmap(..)
addr = kmap_atomic(pte, KM_VMFAULT);
instead of having special magic logic in the header files.
Other than that it looks fairly straightforward, I think.
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to firstname.lastname@example.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/