From: Greg Kroah-Hartman Date: Wed, 5 Oct 2016 20:27:18 +0000 (+0200) Subject: 4.8-stable patches X-Git-Tag: v4.8.1~11 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=1ce825b9cba24b80cd478f2f046eeede6858cf29;p=thirdparty%2Fkernel%2Fstable-queue.git 4.8-stable patches added patches: using-bug_on-as-an-assert-is-_never_-acceptable.patch --- diff --git a/queue-4.8/series b/queue-4.8/series index b960d72aa1f..e2cdd585e08 100644 --- a/queue-4.8/series +++ b/queue-4.8/series @@ -1 +1,2 @@ arm64-debug-avoid-resetting-stepping-state-machine-when-tif_singlestep.patch +using-bug_on-as-an-assert-is-_never_-acceptable.patch diff --git a/queue-4.8/using-bug_on-as-an-assert-is-_never_-acceptable.patch b/queue-4.8/using-bug_on-as-an-assert-is-_never_-acceptable.patch new file mode 100644 index 00000000000..fc11bbc895a --- /dev/null +++ b/queue-4.8/using-bug_on-as-an-assert-is-_never_-acceptable.patch @@ -0,0 +1,53 @@ +From 21f54ddae449f4bdd9f1498124901d67202243d9 Mon Sep 17 00:00:00 2001 +From: Linus Torvalds +Date: Mon, 3 Oct 2016 21:03:48 -0700 +Subject: Using BUG_ON() as an assert() is _never_ acceptable + +From: Linus Torvalds + +commit 21f54ddae449f4bdd9f1498124901d67202243d9 upstream. + +That just generally kills the machine, and makes debugging only much +harder, since the traces may long be gone. + +Debugging by assert() is a disease. Don't do it. If you can continue, +you're much better off doing so with a live machine where you have a +much higher chance that the report actually makes it to the system logs, +rather than result in a machine that is just completely dead. + +The only valid situation for BUG_ON() is when continuing is not an +option, because there is massive corruption. But if you are just +verifying that something is true, you warn about your broken assumptions +(preferably just once), and limp on. + +Fixes: 22f2ac51b6d6 ("mm: workingset: fix crash in shadow node shrinker caused by replace_page_cache_page()") +Cc: Johannes Weiner +Cc: Miklos Szeredi +Cc: Andrew Morton +Signed-off-by: Linus Torvalds +Signed-off-by: Greg Kroah-Hartman + +--- + include/linux/swap.h | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +--- a/include/linux/swap.h ++++ b/include/linux/swap.h +@@ -257,7 +257,7 @@ static inline void workingset_node_pages + + static inline void workingset_node_pages_dec(struct radix_tree_node *node) + { +- VM_BUG_ON(!workingset_node_pages(node)); ++ VM_WARN_ON_ONCE(!workingset_node_pages(node)); + node->count--; + } + +@@ -273,7 +273,7 @@ static inline void workingset_node_shado + + static inline void workingset_node_shadows_dec(struct radix_tree_node *node) + { +- VM_BUG_ON(!workingset_node_shadows(node)); ++ VM_WARN_ON_ONCE(!workingset_node_shadows(node)); + node->count -= 1U << RADIX_TREE_COUNT_SHIFT; + } +