summaryrefslogtreecommitdiffstats
path: root/net/core/dst.c
diff options
context:
space:
mode:
authorBenjamin Herrenschmidt <benh@kernel.crashing.org>2012-09-07 09:48:59 +1000
committerBenjamin Herrenschmidt <benh@kernel.crashing.org>2012-09-07 09:48:59 +1000
commitfff34b3412b9401a76ba9d021db1bd91cb0e02b6 (patch)
tree870ed2d1555004e7939d15b5099017aae61c97b8 /net/core/dst.c
parent28e1e58fb668e262648fb8ee8a24154633f40507 (diff)
parent636802ef96eebe279b22ad9f9dacfe29291e45c7 (diff)
Merge branch 'merge' into next
Brings in various bug fixes from 3.6-rcX
Diffstat (limited to 'net/core/dst.c')
-rw-r--r--net/core/dst.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/net/core/dst.c b/net/core/dst.c
index 069d51d2941..56d63612e1e 100644
--- a/net/core/dst.c
+++ b/net/core/dst.c
@@ -149,7 +149,15 @@ int dst_discard(struct sk_buff *skb)
}
EXPORT_SYMBOL(dst_discard);
-const u32 dst_default_metrics[RTAX_MAX];
+const u32 dst_default_metrics[RTAX_MAX + 1] = {
+ /* This initializer is needed to force linker to place this variable
+ * into const section. Otherwise it might end into bss section.
+ * We really want to avoid false sharing on this variable, and catch
+ * any writes on it.
+ */
+ [RTAX_MAX] = 0xdeadbeef,
+};
+
void *dst_alloc(struct dst_ops *ops, struct net_device *dev,
int initial_ref, int initial_obsolete, unsigned short flags)