From d6a004837f8e08c0b7b70d6340b1dbc53f3da65e Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Tue, 7 Oct 2014 13:06:10 -0700 Subject: [PATCH] 3.14-stable patches added patches: mm-don-t-pointlessly-use-bug_on-for-sanity-check.patch --- ...ntlessly-use-bug_on-for-sanity-check.patch | 58 +++++++++++++++++++ queue-3.14/series | 1 + 2 files changed, 59 insertions(+) create mode 100644 queue-3.14/mm-don-t-pointlessly-use-bug_on-for-sanity-check.patch diff --git a/queue-3.14/mm-don-t-pointlessly-use-bug_on-for-sanity-check.patch b/queue-3.14/mm-don-t-pointlessly-use-bug_on-for-sanity-check.patch new file mode 100644 index 00000000000..ffeadf22188 --- /dev/null +++ b/queue-3.14/mm-don-t-pointlessly-use-bug_on-for-sanity-check.patch @@ -0,0 +1,58 @@ +From 50f5aa8a9b248fa4262cf379863ec9a531b49737 Mon Sep 17 00:00:00 2001 +From: Linus Torvalds +Date: Mon, 28 Apr 2014 14:24:09 -0700 +Subject: mm: don't pointlessly use BUG_ON() for sanity check + +From: Linus Torvalds + +commit 50f5aa8a9b248fa4262cf379863ec9a531b49737 upstream. + +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 +Cc: Davidlohr Bueso +Cc: Andrew Morton +Signed-off-by: Linus Torvalds +Signed-off-by: Mel Gorman +Signed-off-by: Greg Kroah-Hartman + +--- + mm/vmacache.c | 8 +++++--- + 1 file changed, 5 insertions(+), 3 deletions(-) + +--- a/mm/vmacache.c ++++ b/mm/vmacache.c +@@ -81,10 +81,12 @@ struct vm_area_struct *vmacache_find(str + for (i = 0; i < VMACACHE_SIZE; i++) { + struct vm_area_struct *vma = current->vmacache[i]; + +- if (vma && vma->vm_start <= addr && vma->vm_end > addr) { +- BUG_ON(vma->vm_mm != mm); ++ if (!vma) ++ continue; ++ if (WARN_ON_ONCE(vma->vm_mm != mm)) ++ break; ++ if (vma->vm_start <= addr && vma->vm_end > addr) + return vma; +- } + } + + return NULL; diff --git a/queue-3.14/series b/queue-3.14/series index 273450bb569..a3baabd706b 100644 --- a/queue-3.14/series +++ b/queue-3.14/series @@ -34,3 +34,4 @@ mm-vmscan-respect-numa-policy-mask-when-shrinking-slab-on-direct-reclaim.patch mm-vmscan-shrink_slab-rename-max_pass-freeable.patch vmscan-reclaim_clean_pages_from_list-must-use-mod_zone_page_state.patch mm-per-thread-vma-caching.patch +mm-don-t-pointlessly-use-bug_on-for-sanity-check.patch -- 2.47.3