diff options
| -rw-r--r-- | include/net/dst.h | 9 | ||||
| -rw-r--r-- | net/core/dst.c | 3 |
2 files changed, 7 insertions, 5 deletions
diff --git a/include/net/dst.h b/include/net/dst.h index 543ff945bb2f..5cdc6c2b4326 100644 --- a/include/net/dst.h +++ b/include/net/dst.h @@ -142,15 +142,14 @@ struct dst_entry * dst_clone(struct dst_entry * dst) return dst; } +extern const char dst_underflow_bug_msg[]; + static inline void dst_release(struct dst_entry * dst) { if (dst) { - if (atomic_read(&dst->__refcnt) < 1) { - printk("BUG: dst underflow %d: %p\n", - atomic_read(&dst->__refcnt), - current_text_addr()); - } + if (atomic_read(&dst->__refcnt) < 1) + printk(dst_underflow_bug_msg, dst, current_text_addr()); atomic_dec(&dst->__refcnt); } } diff --git a/net/core/dst.c b/net/core/dst.c index 42aeae5959f5..9f14ae8a7673 100644 --- a/net/core/dst.c +++ b/net/core/dst.c @@ -19,6 +19,8 @@ #include <net/dst.h> +const char dst_underflow_bug_msg[] = KERN_DEBUG "BUG: dst underflow %d: %p at %p\n"; + /* Locking strategy: * 1) Garbage collection state of dead destination cache * entries is protected by dst_lock. @@ -273,6 +275,7 @@ void __init dst_init(void) register_netdevice_notifier(&dst_dev_notifier); } +EXPORT_SYMBOL(dst_underflow_bug_msg); EXPORT_SYMBOL(__dst_free); EXPORT_SYMBOL(dst_alloc); EXPORT_SYMBOL(dst_destroy); |
