linux/arch/powerpc/mm
Johannes Weiner 0aad818b2d sparse-vmemmap: specify vmemmap population range in bytes
The sparse code, when asking the architecture to populate the vmemmap,
specifies the section range as a starting page and a number of pages.

This is an awkward interface, because none of the arch-specific code
actually thinks of the range in terms of 'struct page' units and always
translates it to bytes first.

In addition, later patches mix huge page and regular page backing for
the vmemmap.  For this, they need to call vmemmap_populate_basepages()
on sub-section ranges with PAGE_SIZE and PMD_SIZE in mind.  But these
are not necessarily multiples of the 'struct page' size and so this unit
is too coarse.

Just translate the section range into bytes once in the generic sparse
code, then pass byte ranges down the stack.

Signed-off-by: Johannes Weiner <hannes@cmpxchg.org>
Cc: Ben Hutchings <ben@decadent.org.uk>
Cc: Bernhard Schmidt <Bernhard.Schmidt@lrz.de>
Cc: Johannes Weiner <hannes@cmpxchg.org>
Cc: Russell King <rmk@arm.linux.org.uk>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: "H. Peter Anvin" <hpa@zytor.com>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: "Luck, Tony" <tony.luck@intel.com>
Cc: Heiko Carstens <heiko.carstens@de.ibm.com>
Acked-by: David S. Miller <davem@davemloft.net>
Tested-by: David S. Miller <davem@davemloft.net>
Cc: Wu Fengguang <fengguang.wu@intel.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2013-04-29 15:54:35 -07:00
..
40x_mmu.c memblock: Remove rmo_size, burry it in arch/powerpc where it belongs 2010-08-05 12:56:08 +10:00
44x_mmu.c Disintegrate asm/system.h for PowerPC 2012-03-28 18:30:02 +01:00
dma-noncoherent.c powerpc: remove the second argument of k[un]map_atomic() 2012-03-20 21:48:14 +08:00
fault.c powerpc: Hardware breakpoints rewrite to handle non DABR breakpoint registers 2013-01-10 17:01:44 +11:00
fsl_booke_mmu.c powerpc/fsl-booke: Fixup calc_cam_sz to support MMU v2 2012-03-15 12:12:19 -05:00
gup.c powerpc: remove superfluous PageTail checks on the pte gup_fast 2011-11-02 16:06:57 -07:00
hash_low_32.S powerpc: Use CURRENT_THREAD_INFO instead of open coded assembly 2012-07-11 14:18:22 +10:00
hash_low_64.S powerpc/mm: Fix hash computation function 2013-02-04 15:15:08 +11:00
hash_native_64.c powerpc: Remove tlb batching hack for nighthawk 2012-09-27 12:51:06 +10:00
hash_utils_64.c powerpc: Update kernel VSID range 2013-03-17 12:39:06 +11:00
highmem.c mm: fix race in kunmap_atomic() 2010-10-27 18:03:05 -07:00
hugetlbpage-book3e.c powerpc/book3e: Change hugetlb preload to take vma argument 2011-12-07 16:26:24 +11:00
hugetlbpage-hash64.c powerpc/mm: Convert virtual address to vpn 2012-09-17 16:31:49 +10:00
hugetlbpage.c powerpc: fix compile fail in hugetlb cmdline parsing 2012-05-07 16:51:19 -07:00
icswx.c powerpc/icswx: Fix race condition with IPI setting ACOP 2012-03-07 17:06:09 +11:00
icswx.h powerpc/icswx: Fix race condition with IPI setting ACOP 2012-03-07 17:06:09 +11:00
icswx_pid.c powerpc: Split ICSWX ACOP and PID processing 2011-11-25 14:11:27 +11:00
init_32.c Disintegrate asm/system.h for PowerPC 2012-03-28 18:30:02 +01:00
init_64.c sparse-vmemmap: specify vmemmap population range in bytes 2013-04-29 15:54:35 -07:00
Makefile powerpc: Build kernel with -mcmodel=medium 2013-01-10 17:00:31 +11:00
mem.c mm/PPC: use free_highmem_page() to free highmem pages into buddy system 2013-04-29 15:54:32 -07:00
mmap_64.c powerpc+sparc64/mm: Remove hack in mmap randomize layout 2011-11-28 11:42:09 +11:00
mmu_context_hash32.c powerpc: include export.h for files using EXPORT_SYMBOL/THIS_MODULE 2011-10-31 19:30:38 -04:00
mmu_context_hash64.c powerpc: Update kernel VSID range 2013-03-17 12:39:06 +11:00
mmu_context_nohash.c powerpc: use clear_tasks_mm_cpumask() 2012-05-31 17:49:29 -07:00
mmu_decl.h powerpc/fsl-booke: Fix setup_initial_memory_limit to not blindly map 2011-10-11 23:30:41 -05:00
numa.c powerpc+of: Move of_drconf_cell struct definition to asm/prom.h 2012-11-15 09:43:55 +11:00
pgtable.c powerpc: Hugetlb for BookE 2011-09-20 09:19:40 +10:00
pgtable_32.c Disintegrate asm/system.h for PowerPC 2012-03-28 18:30:02 +01:00
pgtable_64.c powerpc: Rename USER_ESID_BITS* to ESID_BITS* 2013-03-17 12:45:44 +11:00
ppc_mmu_32.c memblock: Remove rmo_size, burry it in arch/powerpc where it belongs 2010-08-05 12:56:08 +10:00
slb.c powerpc: Remove FW_FEATURE ISERIES from arch code 2012-03-21 11:16:11 +11:00
slb_low.S powerpc: Rename USER_ESID_BITS* to ESID_BITS* 2013-03-17 12:45:44 +11:00
slice.c Fix misspellings of "whether" in comments. 2012-11-19 14:31:35 +01:00
stab.c powerpc/mm: Remove uses of abs_to_virt() and virt_to_abs() 2012-09-05 15:19:31 +10:00
subpage-prot.c powerpc/mm: Match variable types to API 2012-09-10 14:37:31 +10:00
tlb_hash32.c powerpc: include export.h for files using EXPORT_SYMBOL/THIS_MODULE 2011-10-31 19:30:38 -04:00
tlb_hash64.c powerpc: Update kernel VSID range 2013-03-17 12:39:06 +11:00
tlb_low_64e.S powerpc/booke64: Use SPRG0/3 scratch for bolted TLB miss & crit int 2012-09-05 15:35:52 +10:00
tlb_nohash.c Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc 2012-01-06 17:58:22 -08:00
tlb_nohash_low.S powerpc/47x: Use the new ppc-opcode infrastructure 2012-11-15 12:59:24 +11:00