mirror of
https://github.com/archlinuxarm/PKGBUILDs.git
synced 2024-11-08 22:45:43 +00:00
52 lines
2 KiB
Diff
52 lines
2 KiB
Diff
From 3568393d18ecc488c8008c7d641dfeb659f2a68c Mon Sep 17 00:00:00 2001
|
|
From: Linus Torvalds <torvalds@linux-foundation.org>
|
|
Date: Mon, 3 Oct 2016 21:03:48 -0700
|
|
Subject: [PATCH 3/3] Using BUG_ON() as an assert() is _never_ acceptable
|
|
|
|
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 <hannes@cmpxchg.org>
|
|
Cc: Miklos Szeredi <miklos@szeredi.hu>
|
|
Cc: Andrew Morton <akpm@linux-foundation.org>
|
|
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
|
|
---
|
|
include/linux/swap.h | 4 ++--
|
|
1 file changed, 2 insertions(+), 2 deletions(-)
|
|
|
|
diff --git a/include/linux/swap.h b/include/linux/swap.h
|
|
index 4a529c9..e1d7614 100644
|
|
--- a/include/linux/swap.h
|
|
+++ b/include/linux/swap.h
|
|
@@ -257,7 +257,7 @@ static inline void workingset_node_pages_inc(struct radix_tree_node *node)
|
|
|
|
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_shadows_inc(struct radix_tree_node *node)
|
|
|
|
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;
|
|
}
|
|
|
|
--
|
|
2.10.0
|
|
|