diff --git a/include/net/dst.h b/include/net/dst.h
index 07a0402c52e6b3cec976652d7aa0c3d4a101d955..7d15d238b6ecc4f3d4c47af4389525ead0f7a2c7 100644
--- a/include/net/dst.h
+++ b/include/net/dst.h
@@ -111,6 +111,8 @@ static inline u32 *dst_metrics_write_ptr(struct dst_entry *dst)
 {
 	unsigned long p = dst->_metrics;
 
+	BUG_ON(!p);
+
 	if (p & DST_METRICS_READ_ONLY)
 		return dst->ops->cow_metrics(dst, p);
 	return __DST_METRICS_PTR(p);