bpf: handle pseudo BPF_CALL insn
authorAlexei Starovoitov <ast@plumgrid.com>
Fri, 26 Sep 2014 07:17:01 +0000 (00:17 -0700)
committerDavid S. Miller <davem@davemloft.net>
Fri, 26 Sep 2014 19:05:14 +0000 (15:05 -0400)
commit0a542a86d73b1577e7d4f55fc95dcffd3fe62643
tree8d42f33a9d472940f47e56e404d25f9ebe1c5560
parent09756af46893c18839062976c3252e93a1beeba7
bpf: handle pseudo BPF_CALL insn

in native eBPF programs userspace is using pseudo BPF_CALL instructions
which encode one of 'enum bpf_func_id' inside insn->imm field.
Verifier checks that program using correct function arguments to given func_id.
If all checks passed, kernel needs to fixup BPF_CALL->imm fields by
replacing func_id with in-kernel function pointer.
eBPF interpreter just calls the function.

In-kernel eBPF users continue to use generic BPF_CALL.

Signed-off-by: Alexei Starovoitov <ast@plumgrid.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
kernel/bpf/syscall.c