summaryrefslogtreecommitdiffstats
path: root/net/core/dst.c
diff options
context:
space:
mode:
authorMark Brown <broonie@opensource.wolfsonmicro.com>2012-09-05 13:04:34 +0800
committerMark Brown <broonie@opensource.wolfsonmicro.com>2012-09-05 13:04:34 +0800
commitfc600432cd23e35c85de2ff4468d816d6938a112 (patch)
treec191c51e4458ec31c1d8254f01e23b2e1574b6f4 /net/core/dst.c
parentdb61550931957ee6c7dba751662919424b4344f3 (diff)
parent4cbe5a555fa58a79b6ecbb6c531b8bab0650778d (diff)
Merge tag 'v3.6-rc4' into asoc-omap
Linux 3.6-rc4
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)