Linus Torvalds
50f5aa8a9b
mm: don't pointlessly use BUG_ON() for sanity check
...
BUG_ON() is a big hammer, and should be used _only_ if there is some
major corruption that you cannot possibly recover from, making it
imperative that the current process (and possibly the whole machine) be
terminated with extreme prejudice.
The trivial sanity check in the vmacache code is *not* such a fatal
error. Recovering from it is absolutely trivial, and using BUG_ON()
just makes it harder to debug for no actual advantage.
To make matters worse, the placement of the BUG_ON() (only if the range
check matched) actually makes it harder to hit the sanity check to begin
with, so _if_ there is a bug (and we just got a report from Srivatsa
Bhat that this can indeed trigger), it is harder to debug not just
because the machine is possibly dead, but because we don't have better
coverage.
BUG_ON() must *die*. Maybe we should add a checkpatch warning for it,
because it is simply just about the worst thing you can ever do if you
hit some "this cannot happen" situation.
Reported-by: Srivatsa S. Bhat <srivatsa.bhat@linux.vnet.ibm.com>
Cc: Davidlohr Bueso <davidlohr@hp.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2014-04-28 14:24:09 -07:00
..
backing-dev.c
bdi: avoid oops on device removal
2014-04-03 16:20:49 -07:00
balloon_compaction.c
mm: print more details for bad_page()
2014-01-23 16:36:50 -08:00
bootmem.c
bounce.c
cleancache.c
mm: dump page when hitting a VM_BUG_ON using VM_BUG_ON_PAGE
2014-01-23 16:36:50 -08:00
compaction.c
mm, compaction: determine isolation mode only once
2014-04-07 16:35:55 -07:00
debug-pagealloc.c
dmapool.c
early_ioremap.c
mm: create generic early_ioremap() support
2014-04-07 16:36:15 -07:00
fadvise.c
failslab.c
filemap.c
mm: fix new kernel-doc warning in filemap.c
2014-04-18 16:40:09 -07:00
filemap_xip.c
fremap.c
mm: fix bad rss-counter if remap_file_pages raced migration
2014-03-19 16:21:49 -07:00
frontswap.c
highmem.c
huge_memory.c
thp: close race between split and zap huge pages
2014-04-18 16:40:09 -07:00
hugetlb.c
mm/hugetlb.c: add cond_resched_lock() in return_unused_surplus_pages()
2014-04-18 16:40:08 -07:00
hugetlb_cgroup.c
cgroup: drop const from @buffer of cftype->write_string()
2014-03-19 10:23:54 -04:00
hwpoison-inject.c
mm/hwpoison: add '#' to hwpoison_inject
2014-01-21 16:19:48 -08:00
init-mm.c
internal.h
mm/readahead.c: inline ra_submit
2014-04-07 16:35:58 -07:00
interval_tree.c
iov_iter.c
take iov_iter stuff to mm/iov_iter.c
2014-04-01 23:19:30 -04:00
Kconfig
mm: create generic early_ioremap() support
2014-04-07 16:36:15 -07:00
Kconfig.debug
kmemcheck.c
kmemleak-test.c
kmemleak.c
kmemleak: change some global variables to int
2014-04-03 16:20:50 -07:00
ksm.c
mm: close PageTail race
2014-03-04 07:55:47 -08:00
list_lru.c
mm: keep page cache radix tree nodes in check
2014-04-03 16:21:01 -07:00
maccess.c
madvise.c
Makefile
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
2014-04-12 14:49:50 -07:00
memblock.c
mm/memblock.c: use PFN_PHYS()
2014-04-07 16:35:58 -07:00
memcontrol.c
memcg, slab: do not destroy children caches if parent has aliases
2014-04-07 16:36:13 -07:00
memory-failure.c
Merge branch 'for-3.15' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup
2014-04-03 13:05:42 -07:00
memory.c
mm: split 'tlb_flush_mmu()' into tlb flushing and memory freeing parts
2014-04-25 16:05:40 -07:00
memory_hotplug.c
mm/memory_hotplug.c: move register_memory_resource out of the lock_memory_hotplug
2014-01-23 16:36:52 -08:00
mempolicy.c
mm, mempolicy: remove per-process flag
2014-04-07 16:35:54 -07:00
mempool.c
mempool: add unlikely and likely hints
2014-04-07 16:35:55 -07:00
migrate.c
mm: fix swapops.h:131 bug if remap_file_pages raced migration
2014-03-20 22:09:09 -07:00
mincore.c
mm + fs: prepare for non-page entries in page cache radix trees
2014-04-03 16:21:00 -07:00
mlock.c
mm: try_to_unmap_cluster() should lock_page() before mlocking
2014-04-07 16:35:57 -07:00
mm_init.c
mm: bring back /sys/kernel/mm
2014-01-27 21:02:39 -08:00
mmap.c
mm: per-thread vma caching
2014-04-07 16:35:53 -07:00
mmu_context.c
sched/mm: call finish_arch_post_lock_switch in idle_task_exit and use_mm
2014-02-21 08:50:17 +01:00
mmu_notifier.c
mm: audit/fix non-modular users of module_init in core code
2014-01-23 16:36:52 -08:00
mmzone.c
mprotect.c
mm: move mmu notifier call from change_protection to change_pmd_range
2014-04-07 16:35:50 -07:00
mremap.c
msync.c
nobootmem.c
mm/nobootmem.c: mark function as static
2014-04-03 16:21:02 -07:00
nommu.c
mm: fix 'ERROR: do not initialise globals to 0 or NULL' and coding style
2014-04-07 16:35:55 -07:00
oom_kill.c
mm, oom: base root bonus on current usage
2014-01-30 16:56:56 -08:00
page-writeback.c
mm: remove unused arg of set_page_dirty_balance()
2014-04-07 16:35:57 -07:00
page_alloc.c
mm/page_alloc.c: change mm debug routines back to EXPORT_SYMBOL
2014-04-07 16:35:59 -07:00
page_cgroup.c
mm/page_cgroup.c: mark functions as static
2014-04-03 16:21:02 -07:00
page_io.c
Merge branch 'for-3.14/core' of git://git.kernel.dk/linux-block
2014-01-30 11:19:05 -08:00
page_isolation.c
pagewalk.c
percpu-km.c
percpu-vm.c
percpu.c
percpu: renew the max_contig if we merge the head and previous block
2014-03-29 09:29:42 -04:00
pgtable-generic.c
process_vm_access.c
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
2014-04-12 14:49:50 -07:00
quicklist.c
readahead.c
mm/readahead.c: inline ra_submit
2014-04-07 16:35:58 -07:00
rmap.c
mm: try_to_unmap_cluster() should lock_page() before mlocking
2014-04-07 16:35:57 -07:00
shmem.c
mm: Initialize error in shmem_file_aio_read()
2014-04-13 14:10:26 -07:00
slab.c
Merge branch 'slab/next' of git://git.kernel.org/pub/scm/linux/kernel/git/penberg/linux
2014-04-13 13:28:13 -07:00
slab.h
memcg, slab: never try to merge memcg caches
2014-04-07 16:36:12 -07:00
slab_common.c
memcg, slab: do not destroy children caches if parent has aliases
2014-04-07 16:36:13 -07:00
slob.c
mm: slab/slub: use page->list consistently instead of page->lru
2014-04-11 10:06:06 +03:00
slub.c
Merge branch 'slab/next' of git://git.kernel.org/pub/scm/linux/kernel/git/penberg/linux
2014-04-13 13:28:13 -07:00
sparse-vmemmap.c
mm/sparse: use memblock apis for early memory allocations
2014-01-21 16:19:47 -08:00
sparse.c
mm: use macros from compiler.h instead of __attribute__((...))
2014-04-07 16:35:54 -07:00
swap.c
mm: thrash detection-based file cache sizing
2014-04-03 16:21:01 -07:00
swap_state.c
swap: add a simple detector for inappropriate swapin readahead
2014-02-06 13:48:51 -08:00
swapfile.c
mm/swap: fix race on swap_info reuse between swapoff and swapon
2014-02-06 13:48:51 -08:00
truncate.c
mm: keep page cache radix tree nodes in check
2014-04-03 16:21:01 -07:00
util.c
Merge git://git.infradead.org/users/eparis/audit
2014-04-12 12:38:53 -07:00
vmacache.c
mm: don't pointlessly use BUG_ON() for sanity check
2014-04-28 14:24:09 -07:00
vmalloc.c
mm/vmalloc.c: enhance vm_map_ram() comment
2014-04-07 16:35:55 -07:00
vmpressure.c
arm, pm, vmpressure: add missing slab.h includes
2014-02-03 13:24:01 -05:00
vmscan.c
vmscan: reclaim_clean_pages_from_list() must use mod_zone_page_state()
2014-04-18 16:40:07 -07:00
vmstat.c
CPU hotplug notifiers registration fixes for 3.15-rc1
2014-04-07 14:55:46 -07:00
workingset.c
mm: keep page cache radix tree nodes in check
2014-04-03 16:21:01 -07:00
zbud.c
zsmalloc.c
zsmalloc: Fix CPU hotplug callback registration
2014-03-20 13:43:45 +01:00
zswap.c
Merge branch 'akpm' (incoming from Andrew)
2014-04-07 16:38:06 -07:00