From: Eric Dumazet Date: Tue, 24 May 2011 17:29:50 +0000 (-0400) Subject: net: fix __dst_destroy_metrics_generic() X-Git-Url: http://git.cdn.openwrt.org/?a=commitdiff_plain;h=b30c516f875004f025f4d10147bde28c5e98466b;p=openwrt%2Fstaging%2Fblogic.git net: fix __dst_destroy_metrics_generic() dst_default_metrics is readonly, we dont want to kfree() it later. Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller --- diff --git a/net/core/dst.c b/net/core/dst.c index 81a4fa1c95ed..9ccca038444f 100644 --- a/net/core/dst.c +++ b/net/core/dst.c @@ -315,7 +315,7 @@ void __dst_destroy_metrics_generic(struct dst_entry *dst, unsigned long old) { unsigned long prev, new; - new = (unsigned long) dst_default_metrics; + new = ((unsigned long) dst_default_metrics) | DST_METRICS_READ_ONLY; prev = cmpxchg(&dst->_metrics, old, new); if (prev == old) kfree(__DST_METRICS_PTR(old));