linux/arch/tile/include/asm
Laurent Dufour 2ae416b142 mm: new mm hook framework
CRIU is recreating the process memory layout by remapping the checkpointee
memory area on top of the current process (criu).  This includes remapping
the vDSO to the place it has at checkpoint time.

However some architectures like powerpc are keeping a reference to the
vDSO base address to build the signal return stack frame by calling the
vDSO sigreturn service.  So once the vDSO has been moved, this reference
is no more valid and the signal frame built later are not usable.

This patch serie is introducing a new mm hook framework, and a new
arch_remap hook which is called when mremap is done and the mm lock still
hold.  The next patch is adding the vDSO remap and unmap tracking to the
powerpc architecture.

This patch (of 3):

This patch introduces a new set of header file to manage mm hooks:
- per architecture empty header file (arch/x/include/asm/mm-arch-hooks.h)
- a generic header (include/linux/mm-arch-hooks.h)

The architecture which need to overwrite a hook as to redefine it in its
header file, while architecture which doesn't need have nothing to do.

The default hooks are defined in the generic header and are used in the
case the architecture is not defining it.

In a next step, mm hooks defined in include/asm-generic/mm_hooks.h should
be moved here.

Signed-off-by: Laurent Dufour <ldufour@linux.vnet.ibm.com>
Suggested-by: Andrew Morton <akpm@linux-foundation.org>
Cc: "Kirill A. Shutemov" <kirill.shutemov@linux.intel.com>
Cc: Hugh Dickins <hughd@google.com>
Cc: Rik van Riel <riel@redhat.com>
Cc: Mel Gorman <mgorman@suse.de>
Cc: Pavel Emelyanov <xemul@parallels.com>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Michael Ellerman <mpe@ellerman.id.au>
Cc: Ingo Molnar <mingo@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2015-06-24 17:49:41 -07:00
..
asm-offsets.h
atomic_32.h arch,tile: Convert smp_mb__*() 2014-04-18 14:20:45 +02:00
atomic_64.h arch: Remove __ARCH_HAVE_CMPXCHG 2015-05-13 10:55:42 +02:00
atomic.h tile: include: asm: use 'long long' instead of 'u64' for atomic64_t and its related functions 2013-09-27 16:08:56 -04:00
backtrace.h arch/tile: refactor backtracing code 2011-05-02 13:49:14 -04:00
barrier.h arch,tile: Convert smp_mb__*() 2014-04-18 14:20:45 +02:00
bitops_32.h arch,tile: Convert smp_mb__*() 2014-04-18 14:20:45 +02:00
bitops_64.h arch,tile: Convert smp_mb__*() 2014-04-18 14:20:45 +02:00
bitops.h arch,tile: Convert smp_mb__*() 2014-04-18 14:20:45 +02:00
cache.h tile: make __write_once a synonym for __read_mostly 2013-09-03 14:53:32 -04:00
cacheflush.h tile: convert uses of "inv" to "finv" 2013-07-31 11:51:19 -04:00
checksum.h arch/tile: break out the "csum a long" function to <asm/checksum.h> 2012-07-11 16:04:57 -04:00
cmpxchg.h tile: include: asm: use 'long long' instead of 'u64' for atomic64_t and its related functions 2013-09-27 16:08:56 -04:00
compat.h tile: Use get_signal() signal_setup_done() 2014-08-06 13:03:20 +02:00
current.h
delay.h
device.h tile PCI RC: make default consistent DMA mask 32-bit 2013-09-03 14:53:37 -04:00
dma-mapping.h tile PCI RC: make default consistent DMA mask 32-bit 2013-09-03 14:53:37 -04:00
dma.h
edac.h
elf.h tile: remove support for TILE64 2013-09-03 14:53:29 -04:00
fixmap.h tile: use generic fixmap.h 2014-01-23 16:36:54 -08:00
ftrace.h tile: ftrace: fix function_graph tracer issues 2015-04-17 14:01:38 -04:00
futex.h tile: use proper .align directives on __ex_table sections 2013-08-30 11:56:11 -04:00
hardirq.h hardirq: Make hardirq bits generic 2013-11-13 20:21:46 +01:00
hardwall.h proc: convert /proc/$PID/hardwall to seq_file interface 2014-08-08 15:57:23 -07:00
highmem.h highmem: kill all __kmap_atomic() 2012-03-20 21:48:30 +08:00
homecache.h tile: remove support for TILE64 2013-09-03 14:53:29 -04:00
hugetlb.h mm/hugetlb: add more arch-defined huge_pte functions 2013-04-29 15:54:33 -07:00
hv_driver.h
ide.h
io.h video/fbdev, asm/io.h: Remove ioremap_writethrough() 2015-06-07 15:28:57 +02:00
irq_work.h tile: support arch_irq_work_raise 2015-04-17 12:58:44 -04:00
irq.h tile: Use SPARSE_IRQ 2014-05-16 14:05:21 +02:00
irqflags.h tile: Replace __get_cpu_var uses 2014-08-26 13:45:54 -04:00
Kbuild tile: support arch_irq_work_raise 2015-04-17 12:58:44 -04:00
kdebug.h tile: support kprobes on tilegx 2013-08-30 11:55:53 -04:00
kexec.h arch/tile: support kexec() for tilegx 2012-05-25 12:48:25 -04:00
kgdb.h tilegx: support KGDB 2013-09-03 14:51:26 -04:00
kmap_types.h tile: remove km_type definitions 2012-07-24 15:27:32 +08:00
kprobes.h tile: support kprobes on tilegx 2013-08-30 11:55:53 -04:00
linkage.h
mm-arch-hooks.h mm: new mm hook framework 2015-06-24 17:49:41 -07:00
mmu_context.h tile: Replace __get_cpu_var uses 2014-08-26 13:45:54 -04:00
mmu.h tile: implement gettimeofday() via vDSO 2013-08-13 16:26:21 -04:00
mmzone.h tile: fix some -Wsign-compare warnings 2013-08-30 11:56:50 -04:00
module.h arch/tile: Allow tilegx to build with either 16K or 64K page size 2012-05-25 12:48:24 -04:00
page.h arm64,ia64,ppc,s390,sh,tile,um,x86,mm: remove default gate area 2014-08-08 15:57:27 -07:00
pci.h tile PCI RC: add comment about "PCI hole" problem 2013-09-03 14:52:20 -04:00
percpu.h tile: use a more conservative __my_cpu_offset in CONFIG_PREEMPT 2013-09-30 10:34:41 -04:00
perf_event.h tile/perf: Support perf_events on tilegx and tilepro 2014-03-07 11:19:48 -05:00
pgalloc.h arch/tile: Allow tilegx to build with either 16K or 64K page size 2012-05-25 12:48:24 -04:00
pgtable_32.h tile: remove HUGE_VMAP dead code 2013-09-13 11:15:24 -04:00
pgtable_64.h tile: Use the more common pr_warn instead of pr_warning 2014-11-11 15:51:42 -05:00
pgtable.h mm: make FIRST_USER_ADDRESS unsigned long on all archs 2015-02-11 17:06:03 -08:00
pmc.h tile: Add support for handling PMC hardware 2014-03-07 11:19:47 -05:00
processor.h arch, locking: Ciao arch_mutex_cpu_relax() 2014-07-17 12:32:47 +02:00
ptrace.h tile: don't assume user privilege is zero 2013-09-03 14:45:52 -04:00
sections.h tile: Remove tile-specific _sinitdata and _einitdata 2014-10-02 10:19:33 -04:00
setup.h tile: various console improvements 2013-08-12 14:46:18 -04:00
sigframe.h
signal.h UAPI: (Scripted) Disintegrate arch/tile/include/asm 2012-10-09 09:47:47 +01:00
smp.h tile: support arch_irq_work_raise 2015-04-17 12:58:44 -04:00
spinlock_32.h Disintegrate asm/system.h for Tile 2012-03-28 18:30:03 +01:00
spinlock_64.h tile: fix some -Wsign-compare warnings 2013-08-30 11:56:50 -04:00
spinlock_types.h
spinlock.h
stack.h arch/tile: various bugs in stack backtracer 2012-04-02 12:12:45 -04:00
string.h tile: optimize strnlen using SIMD instructions 2013-08-01 20:08:51 -04:00
switch_to.h tile: support GENERIC_KERNEL_THREAD and GENERIC_KERNEL_EXECVE 2012-10-20 13:13:29 -04:00
syscall.h tile: move declaration of sys_call_table to <asm/syscall.h> 2013-03-21 15:39:35 -04:00
syscalls.h tile: move declaration of sys_call_table to <asm/syscall.h> 2013-03-21 15:39:35 -04:00
thread_info.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/cmetcalf/linux-tile 2015-04-17 16:03:05 -04:00
tile-desc_32.h arch/tile: factor out <arch/opcode.h> header 2011-11-03 16:58:54 -04:00
tile-desc_64.h arch/tile: factor out <arch/opcode.h> header 2011-11-03 16:58:54 -04:00
tile-desc.h arch/tile: factor out <arch/opcode.h> header 2011-11-03 16:58:54 -04:00
timex.h Disintegrate asm/system.h for Tile 2012-03-28 18:30:03 +01:00
tlb.h
tlbflush.h arch/tile: support multiple huge page sizes dynamically 2012-05-25 12:48:27 -04:00
topology.h sched/topology: Rename topology_thread_cpumask() to topology_sibling_cpumask() 2015-05-27 15:22:15 +02:00
traps.h tile: remove support for TILE64 2013-09-03 14:53:29 -04:00
uaccess.h mm/uaccess, mm/fault: Clarify that uaccess may only sleep if pagefaults are enabled 2015-05-19 08:39:14 +02:00
unaligned.h tile: improve big-endian support 2013-08-13 16:26:05 -04:00
unistd.h burying unused conditionals 2013-02-14 09:21:15 -05:00
user.h
vdso.h tile: add clock_gettime support to vDSO 2014-10-02 13:56:07 -04:00
vga.h arch/tile: various header improvements for building drivers 2011-05-04 14:40:54 -04:00