Kuan-Wei Chiu
a1c78bcc70
tracing: Fix cmp_entries_dup() to respect sort() comparison rules
...
commit e63fbd5f6810ed756bbb8a1549c7d4132968baa9 upstream.
The cmp_entries_dup() function used as the comparator for sort()
violated the symmetry and transitivity properties required by the
sorting algorithm. Specifically, it returned 1 whenever memcmp() was
non-zero, which broke the following expectations:
* Symmetry: If x < y, then y > x.
* Transitivity: If x < y and y < z, then x < z.
These violations could lead to incorrect sorting and failure to
correctly identify duplicate elements.
Fix the issue by directly returning the result of memcmp(), which
adheres to the required comparison properties.
Cc: stable@vger.kernel.org
Fixes: 08d43a5fa0 ("tracing: Add lock-free tracing_map")
Link: https://lore.kernel.org/20241203202228.1274403-1-visitorckw@gmail.com
Signed-off-by: Kuan-Wei Chiu <visitorckw@gmail.com>
Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-12-14 19:44:48 +01:00
..
blktrace.c
bpf_trace.c
bpf: Clear the probe_addr for uprobe
2023-09-23 10:59:41 +02:00
fgraph.c
ftrace.c
ftrace: Fix regression with module command in stack_trace_filter
2024-12-14 19:44:43 +01:00
ftrace_internal.h
Kconfig
Makefile
power-traces.c
preemptirq_delay_test.c
tracing: Add MODULE_DESCRIPTION() to preemptirq_delay_test
2024-07-05 09:08:25 +02:00
ring_buffer.c
ring-buffer: Rename ring_buffer_read() to read_buffer_iter_advance()
2024-09-12 11:03:56 +02:00
ring_buffer_benchmark.c
rpm-traces.c
trace.c
tracing: Have saved_cmdlines arrays all in one allocation
2024-11-08 16:20:43 +01:00
trace.h
tracing: Have trace_event_file have ref counters
2023-11-28 16:50:22 +00:00
trace_benchmark.c
trace_benchmark.h
trace_branch.c
trace_clock.c
trace_dynevent.c
trace_dynevent.h
trace_entries.h
trace_event_perf.c
trace/trace_event_perf: remove duplicate samples on the first tracepoint event
2024-12-14 19:44:28 +01:00
trace_events.c
tracing: Have trace_event_file have ref counters
2023-11-28 16:50:22 +00:00
trace_events_filter.c
tracing: Have trace_event_file have ref counters
2023-11-28 16:50:22 +00:00
trace_events_filter_test.h
trace_events_hist.c
tracing/histograms: Return an error if we fail to add histogram to hist_vars list
2023-07-27 08:37:45 +02:00
trace_events_trigger.c
Revert "tracing/trigger: Fix to return error if failed to alloc snapshot"
2024-05-02 16:18:30 +02:00
trace_export.c
trace_functions.c
trace_functions_graph.c
ring-buffer: Rename ring_buffer_read() to read_buffer_iter_advance()
2024-09-12 11:03:56 +02:00
trace_hwlat.c
trace_irqsoff.c
tracing: Fix memleak due to race between current_tracer and trace
2023-08-30 16:27:23 +02:00
trace_kdb.c
trace_kprobe.c
tracing/kprobes: Fix symbol counting logic by looking at modules as well
2024-11-08 16:20:47 +01:00
trace_kprobe_selftest.c
trace_kprobe_selftest.h
trace_mmiotrace.c
trace_nop.c
trace_output.c
tracing: Remove precision vsnprintf() check from print event
2024-11-08 16:20:43 +01:00
trace_output.h
trace_preemptirq.c
trace_printk.c
trace_probe.c
tracing: Consider the NULL character when validating the event length
2024-11-08 16:20:51 +01:00
trace_probe.h
tracing/kprobes: Return EADDRNOTAVAIL when func matches several symbols
2024-11-08 16:20:47 +01:00
trace_probe_tmpl.h
tracing/probes: Fix to update dynamic data counter if fetcharg uses it
2023-08-30 16:27:14 +02:00
trace_sched_switch.c
trace_sched_wakeup.c
tracing: Fix memleak due to race between current_tracer and trace
2023-08-30 16:27:23 +02:00
trace_selftest.c
trace_selftest_dynamic.c
trace_seq.c
trace_stack.c
trace_stat.c
trace_stat.h
trace_syscalls.c
trace_uprobe.c
bpf: Clear the probe_addr for uprobe
2023-09-23 10:59:41 +02:00
tracing_map.c
tracing: Fix cmp_entries_dup() to respect sort() comparison rules
2024-12-14 19:44:48 +01:00
tracing_map.h