linux/arch/c6x/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 C6X: headers 2011-10-06 19:48:20 -04:00
bitops.h arch,c6x: Convert smp_mb__*() 2014-04-18 11:40:34 +02:00
bug.h Disintegrate asm/system.h for C6X 2012-03-28 18:30:02 +01:00
cache.h c6x: fix build failure caused by cache.h 2014-03-04 17:21:58 -05:00
cacheflush.h C6X: cache control 2011-10-06 19:48:10 -04:00
checksum.h C6X: library code 2011-10-06 19:48:23 -04:00
clkdev.h C6X: clocks 2011-10-06 19:48:07 -04:00
clock.h C6X: clocks 2011-10-06 19:48:07 -04:00
cmpxchg.h Disintegrate asm/system.h for C6X 2012-03-28 18:30:02 +01:00
delay.h C6X: headers 2011-10-06 19:48:20 -04:00
dma-mapping.h c6x: include: asm: dma-mapping: Add dummy dma_sync_single_range_for_device 2015-03-26 10:47:19 -04:00
dscr.h C6X: DSCR - Device State Configuration Registers 2011-10-06 19:48:36 -04:00
elf.h default SET_PERSONALITY() in linux/elf.h 2013-02-26 02:46:08 -05:00
flat.h c6x: asm: Add default flat.h according to xtensa architecture 2015-03-26 10:31:48 -04:00
ftrace.h C6X: headers 2011-10-06 19:48:20 -04:00
hardirq.h C6X: interrupt handling 2011-10-06 19:47:54 -04:00
irq.h C6X: remove dependence on legacy IRQs 2012-07-18 23:49:40 -04:00
irqflags.h add memory barrier to arch_local_irq_restore 2013-04-09 15:35:46 -04:00
Kbuild c6x: include: asm: Kbuild: Add generic serial.h 2015-03-26 10:48:26 -04:00
linkage.h C6X: headers 2011-10-06 19:48:20 -04:00
megamod-pic.h C6X: interrupt handling 2011-10-06 19:47:54 -04:00
mm-arch-hooks.h mm: new mm hook framework 2015-06-24 17:49:41 -07:00
module.h Make most arch asm/module.h files use asm-generic/module.h 2012-09-28 14:31:03 +09:30
mutex.h C6X: headers 2011-10-06 19:48:20 -04:00
page.h C6X: headers 2011-10-06 19:48:20 -04:00
pgtable.h arch/c6x/include/asm/pgtable.h: define dummy pgprot_writecombine for !MMU 2015-03-12 18:46:08 -07:00
processor.h arch, locking: Ciao arch_mutex_cpu_relax() 2014-07-17 12:32:47 +02:00
procinfo.h C6X: headers 2011-10-06 19:48:20 -04:00
ptrace.h UAPI: (Scripted) Disintegrate arch/c6x/include/asm 2012-10-09 14:56:38 -04:00
sections.h C6X: headers 2011-10-06 19:48:20 -04:00
setup.h c6x: include: asm: setup: Include "linux/types.h" 2015-03-26 10:39:46 -04:00
soc.h C6X: general SoC support 2011-10-06 19:48:26 -04:00
special_insns.h Disintegrate asm/system.h for C6X 2012-03-28 18:30:02 +01:00
string.h C6X: headers 2011-10-06 19:48:20 -04:00
switch_to.h Disintegrate asm/system.h for C6X 2012-03-28 18:30:02 +01:00
syscall.h C6X: headers 2011-10-06 19:48:20 -04:00
syscalls.h c6x: sanitize copy_thread(), get rid of clone(2) wrapper, switch to generic clone() 2012-11-28 23:43:39 -05:00
thread_info.h arch: Remove exec_domain from remaining archs 2015-04-12 21:03:30 +02:00
timer64.h C6X: time management 2011-10-06 19:47:51 -04:00
timex.h C6X: time management 2011-10-06 19:47:51 -04:00
tlb.h C6X: headers 2011-10-06 19:48:20 -04:00
traps.h C6X: build infrastructure 2011-10-06 19:48:02 -04:00
uaccess.h C6X: headers 2011-10-06 19:48:20 -04:00
unaligned.h C6X: headers 2011-10-06 19:48:20 -04:00