mirror of
https://github.com/archlinuxarm/PKGBUILDs.git
synced 2024-11-08 22:45:43 +00:00
53 lines
2 KiB
Diff
53 lines
2 KiB
Diff
|
From e5cad010f33688b549a77fb1d04955247cc24eb1 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 15/15] 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
|
||
|
|