aboutsummaryrefslogtreecommitdiff
path: root/kernel/trace/tracing_map.c
diff options
context:
space:
mode:
authorIngo Molnar <mingo@kernel.org>2024-01-26 10:26:50 +0100
committerIngo Molnar <mingo@kernel.org>2024-01-26 10:26:50 +0100
commit42ac0be18bfa09c03f52244f7c3e15c89b38532f (patch)
tree601fd5e6da2ca0b77aa8cb22f0e81a29ba6fe1d6 /kernel/trace/tracing_map.c
parent8e5647a723c49d73b9f108a8bb38e8c29d3948ea (diff)
parentecb1b8288dc7ccbdcb3b9df005fa1c0e0c0388a7 (diff)
Merge branch 'linus' into x86/mm, to refresh the branch and pick up fixes
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'kernel/trace/tracing_map.c')
-rw-r--r--kernel/trace/tracing_map.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/kernel/trace/tracing_map.c b/kernel/trace/tracing_map.c
index c774e560f2f9..a4dcf0f24352 100644
--- a/kernel/trace/tracing_map.c
+++ b/kernel/trace/tracing_map.c
@@ -574,7 +574,12 @@ __tracing_map_insert(struct tracing_map *map, void *key, bool lookup_only)
}
memcpy(elt->key, key, map->key_size);
- entry->val = elt;
+ /*
+ * Ensure the initialization is visible and
+ * publish the elt.
+ */
+ smp_wmb();
+ WRITE_ONCE(entry->val, elt);
atomic64_inc(&map->hits);
return entry->val;