summaryrefslogtreecommitdiffstats
path: root/block/bsg-lib.c
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2013-09-25 14:33:16 -0700
committerDavid S. Miller <davem@davemloft.net>2013-11-12 15:22:35 -0800
commit2b77933c28f5044629bb19e8045aae65b72b939d (patch)
treeecb5e23e19599a77748ec54b116ac59341c25a38 /block/bsg-lib.c
parent37b3a8ff3e086cd5c369e77d2383b691b2874cd6 (diff)
sparc64: Move to 64-bit PGDs and PMDs.
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@davemloft.net>
Diffstat (limited to 'block/bsg-lib.c')
0 files changed, 0 insertions, 0 deletions