David Miller wrote: [Wed Nov 13 2013, 02:18:49AM EST] > > To make the page tables compact, we were using 32-bit PGDs and PMDs. > We only had to support <= 43 bits of physical addresses so this was > quite feasible. > > In order to support larger physical addresses we have to move to > 64-bit PGDs and PMDs. > > Most of the changes are straight-forward: > > 1) {pgd,pmd}_t --> unsigned long > > 2) Anything that tries to use plain "unsigned int" types with pgd/pmd > values needs to be adjusted. In particular things like "0U" become > "0UL". > > 3) {PGDIR,PMD}_BITS decrease by one. > > 4) In the assembler page table walkers, use "ldxa" instead of "lduwa" > and adjust the low bit masks to clear out the low 3 bits instead of > just the low 2 bits during pgd/pmd address formation. > > Also, use PTRS_PER_PGD and PTRS_PER_PMD in the sizing of the > swapper_{pg_dir,low_pmd_dir} arrays. > > This patch does not try to take advantage of having 64-bits in the > PMDs to simplify the hugepage code, that will come in a subsequent > change. > > Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx> > --- Acked-by: Bob Picco <bob.picco@xxxxxxxxxx> -- To unsubscribe from this list: send the line "unsubscribe sparclinux" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html