android_kernel_motorola_sm6375/kernel/trace
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Daniel Borkmann f96da09473 bpf: simplify narrower ctx access
This work tries to make the semantics and code around the
narrower ctx access a bit easier to follow. Right now
everything is done inside the .is_valid_access(). Offset
matching is done differently for read/write types, meaning
writes don't support narrower access and thus matching only
on offsetof(struct foo, bar) is enough whereas for read
case that supports narrower access we must check for
offsetof(struct foo, bar) + offsetof(struct foo, bar) +
sizeof(<bar>) - 1 for each of the cases. For read cases of
individual members that don't support narrower access (like
packet pointers or skb->cb[] case which has its own narrow
access logic), we check as usual only offsetof(struct foo,
bar) like in write case. Then, for the case where narrower
access is allowed, we also need to set the aux info for the
access. Meaning, ctx_field_size and converted_op_size have
to be set. First is the original field size e.g. sizeof(<bar>)
as in above example from the user facing ctx, and latter
one is the target size after actual rewrite happened, thus
for the kernel facing ctx. Also here we need the range match
and we need to keep track changing convert_ctx_access() and
converted_op_size from is_valid_access() as both are not at
the same location.

We can simplify the code a bit: check_ctx_access() becomes
simpler in that we only store ctx_field_size as a meta data
and later in convert_ctx_accesses() we fetch the target_size
right from the location where we do convert. Should the verifier
be misconfigured we do reject for BPF_WRITE cases or target_size
that are not provided. For the subsystems, we always work on
ranges in is_valid_access() and add small helpers for ranges
and narrow access, convert_ctx_accesses() sets target_size
for the relevant instruction.

Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Acked-by: John Fastabend <john.fastabend@gmail.com>
Cc: Yonghong Song <yhs@fb.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2017-07-03 02:22:52 -07:00
..
blktrace.c blktrace: fix integer parse 2017-05-19 09:21:15 -06:00
bpf_trace.c bpf: simplify narrower ctx access 2017-07-03 02:22:52 -07:00
ftrace.c ftrace: Fix memory leak in ftrace_graph_release() 2017-05-26 22:35:48 -04:00
Kconfig New features for this release: 2017-05-03 18:41:21 -07:00
Makefile perf/core: Rename CONFIG_[UK]PROBE_EVENT to CONFIG_[UK]PROBE_EVENTS 2017-03-01 10:26:39 +01:00
power-traces.c
ring_buffer.c New features for this release: 2017-05-03 18:41:21 -07:00
ring_buffer_benchmark.c ring-buffer: Return reader page back into existing ring buffer 2017-05-01 10:26:40 -04:00
rpm-traces.c
trace.c tracing: Make sure RCU is watching before calling a stack trace 2017-05-18 23:57:56 -04:00
trace.h ftrace: Remove #ifdef from code and add clear_ftrace_function_probes() stub 2017-05-17 21:53:32 -04:00
trace_benchmark.c tracing: Have the trace_event benchmark thread call cond_resched_rcu_qs() 2017-04-17 15:21:19 -04:00
trace_benchmark.h
trace_branch.c
trace_clock.c sched/headers: Prepare for new header dependencies before moving code to <linux/sched/clock.h> 2017-03-02 08:42:27 +01:00
trace_entries.h trace: make trace_hwlat timestamp y2038 safe 2017-05-08 17:15:15 -07:00
trace_event_perf.c
trace_events.c tracing/ftrace: Add a better way to pass data via the probe functions 2017-04-20 22:06:46 -04:00
trace_events_filter.c
trace_events_filter_test.h
trace_events_hist.c sched/headers: Prepare to use <linux/rcuupdate.h> instead of <linux/rculist.h> in <linux/sched.h> 2017-03-02 08:42:38 +01:00
trace_events_trigger.c sched/headers: Prepare to use <linux/rcuupdate.h> instead of <linux/rculist.h> in <linux/sched.h> 2017-03-02 08:42:38 +01:00
trace_export.c
trace_functions.c tracing/ftrace: Allow for instances to trigger their own stacktrace probes 2017-04-20 22:06:49 -04:00
trace_functions_graph.c
trace_hwlat.c trace: make trace_hwlat timestamp y2038 safe 2017-05-08 17:15:15 -07:00
trace_irqsoff.c
trace_kdb.c
trace_kprobe.c tracing/kprobes: Enforce kprobes teardown after testing 2017-05-17 21:50:27 -04:00
trace_mmiotrace.c
trace_nop.c
trace_output.c trace: make trace_hwlat timestamp y2038 safe 2017-05-08 17:15:15 -07:00
trace_output.h
trace_printk.c
trace_probe.c tracing/probes: Fix a warning message to show correct maximum length 2017-02-15 10:32:48 -05:00
trace_probe.h perf/core: Rename CONFIG_[UK]PROBE_EVENT to CONFIG_[UK]PROBE_EVENTS 2017-03-01 10:26:39 +01:00
trace_sched_switch.c
trace_sched_wakeup.c
trace_selftest.c sched/headers: Prepare for new header dependencies before moving code to <uapi/linux/sched/types.h> 2017-03-02 08:42:27 +01:00
trace_selftest_dynamic.c
trace_seq.c
trace_stack.c rcu/tracing: Add rcu_disabled to denote when rcu_irq_enter() will not work 2017-04-10 15:22:03 -04:00
trace_stat.c
trace_stat.h
trace_syscalls.c
trace_uprobe.c sched/headers: Prepare to use <linux/rcuupdate.h> instead of <linux/rculist.h> in <linux/sched.h> 2017-03-02 08:42:38 +01:00
tracing_map.c
tracing_map.h