Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

[PATCH] ppc32: Allow adjust of pfn offset in pte

Allow the pfn to be offset by more than just PAGE_SHIFT in the pte. Today,
PAGE_SHIFT tends to allow us to have 12-bits of flags in the pte. In the
future if we have a larger pte we can allocate more bits for flags by
offsetting the pfn even further.

Signed-off-by: Kumar Gala <kumar.gala@freescale.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>

authored by

Kumar Gala and committed by
Linus Torvalds
b464fce5 a85f6d4a

+7 -2
+7 -2
include/asm-ppc/pgtable.h
··· 431 431 * Conversions between PTE values and page frame numbers. 432 432 */ 433 433 434 - #define pte_pfn(x) (pte_val(x) >> PAGE_SHIFT) 434 + /* in some case we want to additionaly adjust where the pfn is in the pte to 435 + * allow room for more flags */ 436 + #define PFN_SHIFT_OFFSET (PAGE_SHIFT) 437 + 438 + #define pte_pfn(x) (pte_val(x) >> PFN_SHIFT_OFFSET) 435 439 #define pte_page(x) pfn_to_page(pte_pfn(x)) 436 440 437 - #define pfn_pte(pfn, prot) __pte(((pte_t)(pfn) << PAGE_SHIFT) | pgprot_val(prot)) 441 + #define pfn_pte(pfn, prot) __pte(((pte_basic_t)(pfn) << PFN_SHIFT_OFFSET) |\ 442 + pgprot_val(prot)) 438 443 #define mk_pte(page, prot) pfn_pte(page_to_pfn(page), prot) 439 444 440 445 /*