Linus Torvalds
423913ad4a
mmap: relax file size limit for regular files
...
Commit be83bbf806 ("mmap: introduce sane default mmap limits") was
introduced to catch problems in various ad-hoc character device drivers
doing mmap and getting the size limits wrong. In the process, it used
"known good" limits for the normal cases of mapping regular files and
block device drivers.
It turns out that the "s_maxbytes" limit was less "known good" than I
thought. In particular, /proc doesn't set it, but exposes one regular
file to mmap: /proc/vmcore. As a result, that file got limited to the
default MAX_INT s_maxbytes value.
This went unnoticed for a while, because apparently the only thing that
needs it is the s390 kernel zfcpdump, but there might be other tools
that use this too.
Vasily suggested just changing s_maxbytes for all of /proc, which isn't
wrong, but makes me nervous at this stage. So instead, just make the
new mmap limit always be MAX_LFS_FILESIZE for regular files, which won't
affect anything else. It wasn't the regular file case I was worried
about.
I'd really prefer for maxsize to have been per-inode, but that is not
how things are today.
Fixes: be83bbf806 ("mmap: introduce sane default mmap limits")
Reported-by: Vasily Gorbik <gor@linux.ibm.com>
Cc: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2018-05-19 09:29:11 -07:00
..
kasan
slab, slub: skip unnecessary kasan_cache_shutdown()
2018-04-05 21:36:24 -07:00
backing-dev.c
bdi: Fix use after free bug in debugfs_remove()
2018-05-03 09:36:24 -06:00
balloon_compaction.c
virtio_balloon: fix deadlock on OOM
2017-11-14 23:57:38 +02:00
bootmem.c
mm: docs: fix parameter names mismatch
2018-02-06 18:32:48 -08:00
cleancache.c
cma.c
mm/cma: manage the memory of the CMA area by using the ZONE_MOVABLE
2018-04-11 10:28:32 -07:00
cma.h
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
cma_debug.c
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
compaction.c
mm/cma: remove ALLOC_CMA
2018-04-11 10:28:32 -07:00
debug.c
mm/debug.c: provide useful debugging information for VM_BUG
2018-01-04 16:45:09 -08:00
debug_page_ref.c
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
dmapool.c
early_ioremap.c
mm/early_ioremap: Fix boot hang with earlyprintk=efi,keep
2017-12-11 14:54:44 +01:00
fadvise.c
mm: add ksys_fadvise64_64() helper; remove in-kernel call to sys_fadvise64_64()
2018-04-02 20:16:10 +02:00
failslab.c
mm: make should_failslab always available for fault injection
2018-04-05 21:36:26 -07:00
filemap.c
mm/filemap.c: fix NULL pointer in page_cache_tree_insert()
2018-04-20 17:18:36 -07:00
frame_vector.c
mm/frame_vector.c: release a semaphore in 'get_vaddr_frames()'
2017-12-14 16:00:48 -08:00
frontswap.c
gup.c
proc: do not access cmdline nor environ from file-backed areas
2018-05-17 09:27:47 -07:00
gup_benchmark.c
mm/gup_benchmark: handle gup failures
2018-04-13 17:10:27 -07:00
highmem.c
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
hmm.c
mm/hmm.c: remove superfluous RCU protection around radix tree lookup
2018-04-11 10:28:31 -07:00
huge_memory.c
mm: enable thp migration for shmem thp
2018-04-20 17:18:35 -07:00
hugetlb.c
mm, hugetlbfs: introduce ->pagesize() to vm_operations_struct
2018-04-05 21:36:26 -07:00
hugetlb_cgroup.c
hwpoison-inject.c
mm/memory_failure: Remove unused trapno from memory_failure
2018-01-23 12:17:42 -06:00
init-mm.c
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
internal.h
mm/cma: remove ALLOC_CMA
2018-04-11 10:28:32 -07:00
interval_tree.c
mm/interval_tree.c: use vma_pages() helper
2018-01-31 17:18:37 -08:00
Kconfig
mm: don't allow deferred pages with NEED_PER_CPU_KM
2018-05-18 17:17:12 -07:00
Kconfig.debug
kmemcheck: rip it out
2017-11-15 18:21:05 -08:00
khugepaged.c
page cache: use xa_lock
2018-04-11 10:28:39 -07:00
kmemleak-test.c
kmemleak.c
mm: kernel-doc: add missing parameter descriptions
2018-04-05 21:36:27 -07:00
ksm.c
mm/ksm.c: fix inconsistent accounting of zero pages
2018-04-11 10:28:31 -07:00
list_lru.c
mm: make counting of list_lru_one::nr_items lockless
2018-04-05 21:36:27 -07:00
maccess.c
mm: docs: fix parameter names mismatch
2018-02-06 18:32:48 -08:00
madvise.c
mm/memory_failure: Remove unused trapno from memory_failure
2018-01-23 12:17:42 -06:00
Makefile
mm/swap_slots.c: use conditional compilation
2018-04-05 21:36:24 -07:00
memblock.c
powerpc updates for 4.17
2018-04-07 12:08:19 -07:00
memcontrol.c
mm: memcg: add __GFP_NOWARN in __memcg_schedule_kmem_cache_create()
2018-04-20 17:18:36 -07:00
memory-failure.c
mm, migrate: remove reason argument from new_page_t
2018-04-11 10:28:32 -07:00
memory.c
mm: swap: unify cluster-based and vma-based swap readahead
2018-04-05 21:36:25 -07:00
memory_hotplug.c
mm: unclutter THP migration
2018-04-11 10:28:32 -07:00
mempolicy.c
mm: unclutter THP migration
2018-04-11 10:28:32 -07:00
mempool.c
kasan: detect invalid frees for large mempool objects
2018-02-06 18:32:43 -08:00
memtest.c
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
migrate.c
mm: migrate: fix double call of radix_tree_replace_slot()
2018-05-11 17:28:45 -07:00
mincore.c
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
mlock.c
mm, mlock, vmscan: no more skipping pagevecs
2018-02-21 15:35:42 -08:00
mm_init.c
mmap.c
mmap: relax file size limit for regular files
2018-05-19 09:29:11 -07:00
mmu_context.c
mmu_notifier.c
mm, mmu_notifier: annotate mmu notifiers with blockable invalidate callbacks
2018-01-31 17:18:38 -08:00
mmzone.c
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
mprotect.c
sched/numa: avoid trapping faults and attempting migration of file-backed dirty pages
2018-04-11 10:28:31 -07:00
mremap.c
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
msync.c
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
nobootmem.c
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
nommu.c
mm/nommu: remove description of alloc_vm_area
2018-04-05 21:36:26 -07:00
oom_kill.c
mm, oom: fix concurrent munlock and oom reaper unmap, v3
2018-05-11 17:28:45 -07:00
page-writeback.c
writeback: safer lock nesting
2018-04-20 17:18:35 -07:00
page_alloc.c
xen, mm: allow deferred page initialization for xen pv domains
2018-04-11 10:28:38 -07:00
page_counter.c
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
page_ext.c
mm/page_ext.c: make page_ext_init a noop when CONFIG_PAGE_EXTENSION but nothing uses it
2018-01-31 17:18:39 -08:00
page_idle.c
mm: thp: fix potential clearing to referenced flag in page_idle_clear_pte_refs_one()
2018-04-05 21:36:25 -07:00
page_io.c
block: convert to bio_first_bvec_all & bio_first_page_all
2018-01-06 09:18:00 -07:00
page_isolation.c
mm, migrate: remove reason argument from new_page_t
2018-04-11 10:28:32 -07:00
page_owner.c
mm/page_owner.c: make early_page_owner_param() __init
2018-04-05 21:36:26 -07:00
page_poison.c
mm/page_poison.c: make early_page_poison_param() __init
2018-04-05 21:36:26 -07:00
page_vma_mapped.c
mm, page_vma_mapped: Introduce pfn_in_hpage()
2018-01-22 12:15:57 -08:00
pagewalk.c
mm: kernel-doc: add missing parameter descriptions
2018-04-05 21:36:27 -07:00
percpu-internal.h
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
percpu-km.c
percpu: allow select gfp to be passed to underlying allocators
2018-02-18 05:33:01 -08:00
percpu-stats.c
mm: reuse DEFINE_SHOW_ATTRIBUTE() macro
2018-04-05 21:36:25 -07:00
percpu-vm.c
percpu: allow select gfp to be passed to underlying allocators
2018-02-18 05:33:01 -08:00
percpu.c
arch: remove obsolete architecture ports
2018-04-02 20:20:12 -07:00
pgtable-generic.c
mm: do not lose dirty and accessed bits in pmdp_invalidate()
2018-01-31 17:18:38 -08:00
process_vm_access.c
mm: docs: add blank lines to silence sphinx "Unexpected indentation" errors
2018-02-06 18:32:48 -08:00
quicklist.c
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
readahead.c
page cache: use xa_lock
2018-04-11 10:28:39 -07:00
rmap.c
mm: enable thp migration for shmem thp
2018-04-20 17:18:35 -07:00
rodata_test.c
mm: fix RODATA_TEST failure "rodata_test: test data was not read only"
2017-10-03 17:54:24 -07:00
shmem.c
page cache: use xa_lock
2018-04-11 10:28:39 -07:00
slab.c
mm, slab: reschedule cache_reap() on the same CPU
2018-04-13 17:10:27 -07:00
slab.h
slab, slub: skip unnecessary kasan_cache_shutdown()
2018-04-05 21:36:24 -07:00
slab_common.c
mm: make should_failslab always available for fault injection
2018-04-05 21:36:26 -07:00
slob.c
slab, slub, slob: add slab_flags_t
2017-11-15 18:21:01 -08:00
slub.c
kasan, slub: fix handling of kasan_slab_free hook
2018-04-11 10:28:32 -07:00
sparse-vmemmap.c
mm: merge vmem_altmap_alloc into altmap_alloc_block_buf
2018-01-08 11:46:23 -08:00
sparse.c
mm: sections are not offlined during memory hotremove
2018-05-11 17:28:45 -07:00
swap.c
mm/swap.c: remove @cold parameter description for release_pages()
2018-04-05 21:36:26 -07:00
swap_cgroup.c
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
swap_slots.c
mm/swap_slots.c: use conditional compilation
2018-04-05 21:36:24 -07:00
swap_state.c
page cache: use xa_lock
2018-04-11 10:28:39 -07:00
swapfile.c
mm/swapfile.c: make pointer swap_avail_heads static
2018-04-11 10:28:32 -07:00
truncate.c
page cache: use xa_lock
2018-04-11 10:28:39 -07:00
usercopy.c
usercopy: WARN() on slab cache usercopy region violations
2018-01-15 12:07:48 -08:00
userfaultfd.c
mm/userfaultfd.c: remove duplicate include
2018-02-06 18:32:47 -08:00
util.c
mm/gup.c: document return value
2018-04-13 17:10:27 -07:00
vmacache.c
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
vmalloc.c
vmalloc: fix __GFP_HIGHMEM usage for vmalloc_32 on 32b systems
2018-02-21 15:35:43 -08:00
vmpressure.c
mm, vmpressure: pass-through notification support
2017-07-10 16:32:31 -07:00
vmscan.c
mm,vmscan: Allow preallocating memory for register_shrinker().
2018-04-16 02:06:47 -04:00
vmstat.c
mm: don't show nr_indirectly_reclaimable in /proc/vmstat
2018-05-11 17:28:45 -07:00
workingset.c
page cache: use xa_lock
2018-04-11 10:28:39 -07:00
z3fold.c
z3fold: fix reclaim lock-ups
2018-05-11 17:28:45 -07:00
zbud.c
mm: docs: fix parameter names mismatch
2018-02-06 18:32:48 -08:00
zpool.c
mm/zpool.c: zpool_evictable: fix mismatch in parameter name and kernel-doc
2018-02-21 15:35:43 -08:00
zsmalloc.c
mm: kernel-doc: add missing parameter descriptions
2018-04-05 21:36:27 -07:00
zswap.c
mm, swap, frontswap: fix THP swap if frontswap enabled
2018-02-21 15:35:43 -08:00