bpf/verifier: per-register parent pointers
authorEdward Cree <ecree@solarflare.com>
Wed, 22 Aug 2018 19:02:19 +0000 (20:02 +0100)
committerAlexei Starovoitov <ast@kernel.org>
Thu, 30 Aug 2018 01:52:12 +0000 (18:52 -0700)
commit679c782de14bd48c19dd74cd1af20a2bc05dd936
tree6e5dc6750d497c1b081e3d347af3ca6e3c045cda
parent29b5e0f34359f0e1c95aa644bdd92e459c1231ee
bpf/verifier: per-register parent pointers

By giving each register its own liveness chain, we elide the skip_callee()
 logic.  Instead, each register's parent is the state it inherits from;
 both check_func_call() and prepare_func_exit() automatically connect
 reg states to the correct chain since when they copy the reg state across
 (r1-r5 into the callee as args, and r0 out as the return value) they also
 copy the parent pointer.

Signed-off-by: Edward Cree <ecree@solarflare.com>
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
include/linux/bpf_verifier.h
kernel/bpf/verifier.c