diff options
author | Jason A. Donenfeld <Jason@zx2c4.com> | 2019-09-24 11:09:37 +0200 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2019-09-26 09:05:56 +0200 |
commit | adecda5bee0a05c11f1a4a4b16b01d11a832fd43 (patch) | |
tree | a343333e4244ebdcf37686f26f25bb40962fd655 /net/core | |
parent | 3e8b9bfa110896f95d602d8c98d5f9d67e41d78c (diff) | |
download | linux-adecda5bee0a05c11f1a4a4b16b01d11a832fd43.tar.gz linux-adecda5bee0a05c11f1a4a4b16b01d11a832fd43.tar.bz2 linux-adecda5bee0a05c11f1a4a4b16b01d11a832fd43.zip |
net: print proper warning on dst underflow
Proper warnings with stack traces make it much easier to figure out
what's doing the double free and create more meaningful bug reports from
users.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/core')
-rw-r--r-- | net/core/dst.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/net/core/dst.c b/net/core/dst.c index 1325316d9eab..193af526e908 100644 --- a/net/core/dst.c +++ b/net/core/dst.c @@ -172,7 +172,7 @@ void dst_release(struct dst_entry *dst) int newrefcnt; newrefcnt = atomic_dec_return(&dst->__refcnt); - if (unlikely(newrefcnt < 0)) + if (WARN_ONCE(newrefcnt < 0, "dst_release underflow")) net_warn_ratelimited("%s: dst:%p refcnt:%d\n", __func__, dst, newrefcnt); if (!newrefcnt) @@ -187,7 +187,7 @@ void dst_release_immediate(struct dst_entry *dst) int newrefcnt; newrefcnt = atomic_dec_return(&dst->__refcnt); - if (unlikely(newrefcnt < 0)) + if (WARN_ONCE(newrefcnt < 0, "dst_release_immediate underflow")) net_warn_ratelimited("%s: dst:%p refcnt:%d\n", __func__, dst, newrefcnt); if (!newrefcnt) |