On Fri, May 04, 2007 at 12:57:03PM +0200, Franck Bui-Huu wrote:
> From: Franck Bui-Huu <firstname.lastname@example.org>
> Since both kernel and process page tables are never allocated in
> highmem these 2 macros were doing unnecessary extra works for getting
> a pte from a pmd.
> This patch also clean up pte allocation functions by passing
> __GFP_ZERO to alloc_pages() and by removing a useless local variable.
> With this patch the size of the kernel is slighly reduced.
These hook allows general mapping of pagetables, not just highmem. On MIPS
that's useful because fancy mapping stuff allows a faster implementation of
TLB exception handlers. That was more or less the official strategy for
the R2000. Then the R4000 came and broke this scheme with virtual aliases
which was hard to fix back then so I had to switch to the current
pagetable and TLB reload mechanism. If you care about the details,
take a look at Linux/MIPS 2.1.1.
The fact that getting this to work again would also allow putting pagetables
into highmem at virtually no extra effort is a nice side effect, of course.