]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
3.14-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 7 Oct 2014 20:06:10 +0000 (13:06 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 7 Oct 2014 20:06:10 +0000 (13:06 -0700)
added patches:
mm-don-t-pointlessly-use-bug_on-for-sanity-check.patch

queue-3.14/mm-don-t-pointlessly-use-bug_on-for-sanity-check.patch [new file with mode: 0644]
queue-3.14/series

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 (file)
index 0000000..ffeadf2
--- /dev/null
@@ -0,0 +1,58 @@
+From 50f5aa8a9b248fa4262cf379863ec9a531b49737 Mon Sep 17 00:00:00 2001
+From: Linus Torvalds <torvalds@linux-foundation.org>
+Date: Mon, 28 Apr 2014 14:24:09 -0700
+Subject: mm: don't pointlessly use BUG_ON() for sanity check
+
+From: Linus Torvalds <torvalds@linux-foundation.org>
+
+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 <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>
+Signed-off-by: Mel Gorman <mgorman@suse.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ 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;
index 273450bb569257db297b55b0779962ba705cd160..a3baabd706bab15a610df4f4fa1b9576c11da5de 100644 (file)
@@ -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