linux_dsm_epyc7002/arch
Dominik Dingel 4a9e1cda27 mm: bring in additional flag for fixup_user_fault to signal unlock
During Jason's work with postcopy migration support for s390 a problem
regarding gmap faults was discovered.

The gmap code will call fixup_user_fault which will end up always in
handle_mm_fault.  Till now we never cared about retries, but as the
userfaultfd code kind of relies on it.  this needs some fix.

This patchset does not take care of the futex code.  I will now look
closer at this.

This patch (of 2):

With the introduction of userfaultfd, kvm on s390 needs fixup_user_fault
to pass in FAULT_FLAG_ALLOW_RETRY and give feedback if during the
faulting we ever unlocked mmap_sem.

This patch brings in the logic to handle retries as well as it cleans up
the current documentation.  fixup_user_fault was not having the same
semantics as filemap_fault.  It never indicated if a retry happened and
so a caller wasn't able to handle that case.  So we now changed the
behaviour to always retry a locked mmap_sem.

Signed-off-by: Dominik Dingel <dingel@linux.vnet.ibm.com>
Reviewed-by: Andrea Arcangeli <aarcange@redhat.com>
Cc: "Kirill A. Shutemov" <kirill.shutemov@linux.intel.com>
Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
Cc: Christian Borntraeger <borntraeger@de.ibm.com>
Cc: "Jason J. Herne" <jjherne@linux.vnet.ibm.com>
Cc: David Rientjes <rientjes@google.com>
Cc: Eric B Munson <emunson@akamai.com>
Cc: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com>
Cc: Mel Gorman <mgorman@suse.de>
Cc: Heiko Carstens <heiko.carstens@de.ibm.com>
Cc: Dominik Dingel <dingel@linux.vnet.ibm.com>
Cc: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2016-01-15 17:56:32 -08:00
..
alpha arch/*/include/uapi/asm/mman.h: : let MADV_FREE have same value for all architectures 2016-01-15 17:56:32 -08:00
arc mm: differentiate page_mapped() from page_mapcount() for compound pages 2016-01-15 17:56:32 -08:00
arm kvm: rename pfn_t to kvm_pfn_t 2016-01-15 17:56:32 -08:00
arm64 kvm: rename pfn_t to kvm_pfn_t 2016-01-15 17:56:32 -08:00
avr32 avr32: convert to asm-generic/memory_model.h 2016-01-15 17:56:32 -08:00
blackfin MTD updates for v4.5: 2016-01-13 11:25:54 -08:00
c6x Merge branch 'for-linux-next' of git://linux-c6x.org/git/projects/linux-c6x-upstreaming 2016-01-12 13:00:16 -08:00
cris cris: nand: remove useless mtd->priv = chip assignments 2015-12-18 13:22:11 -08:00
frv frv: fix compiler warning from definition of __pmd() 2016-01-15 17:56:32 -08:00
h8300 h8300: Rename ctlr_out/in[bwl] to raw_read/write[bwl] 2015-12-15 10:12:03 +01:00
hexagon Linux 4.3-rc4 2015-10-06 17:10:28 +02:00
ia64 libnvdimm, pfn, pmem: allocate memmap array in persistent memory 2016-01-15 17:56:32 -08:00
m32r m32r: fix m32104ut_defconfig build fail 2016-01-14 16:00:49 -08:00
m68k Merge branch 'work.misc' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2016-01-12 17:11:47 -08:00
metag Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/livepatching 2016-01-14 16:38:02 -08:00
microblaze Revert "scatterlist: use sg_phys()" 2015-12-15 12:54:06 -08:00
mips kvm: rename pfn_t to kvm_pfn_t 2016-01-15 17:56:32 -08:00
mn10300 libnvdimm, pfn, pmem: allocate memmap array in persistent memory 2016-01-15 17:56:32 -08:00
nios2 nios2: fix cache coherency 2015-11-26 22:25:58 +08:00
openrisc
parisc arch/*/include/uapi/asm/mman.h: : let MADV_FREE have same value for all architectures 2016-01-15 17:56:32 -08:00
powerpc mm, dax, pmem: introduce pfn_t 2016-01-15 17:56:32 -08:00
s390 mm: bring in additional flag for fixup_user_fault to signal unlock 2016-01-15 17:56:32 -08:00
score Merge branch 'strscpy' of git://git.kernel.org/pub/scm/linux/kernel/git/cmetcalf/linux-tile 2015-10-04 16:31:13 +01:00
sh mm: differentiate page_mapped() from page_mapcount() for compound pages 2016-01-15 17:56:32 -08:00
sparc arch/sparc/include/asm/pgtable_64.h: add pmd_[dirty|mkclean] for THP 2016-01-15 17:56:32 -08:00
tile tile, thp: remove infrastructure for handling splitting PMDs 2016-01-15 17:56:32 -08:00
um um: kill pfn_t 2016-01-15 17:56:32 -08:00
unicore32 arch: consolidate CONFIG_STRICT_DEVM in lib/Kconfig.debug 2016-01-09 06:30:49 -08:00
x86 mm, x86: get_user_pages() for dax mappings 2016-01-15 17:56:32 -08:00
xtensa arch/*/include/uapi/asm/mman.h: : let MADV_FREE have same value for all architectures 2016-01-15 17:56:32 -08:00
.gitignore
Kconfig mm: mmap: add new /proc tunable for mmap_base ASLR 2016-01-14 16:00:49 -08:00