Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit acf167f3 authored by David S. Miller's avatar David S. Miller
Browse files

Merge branch 'bpf-fixes'



Daniel Borkmann says:

====================
Two BPF fixes

The set fixes cb_access and xdp_adjust_head bits in struct bpf_prog,
that are used for requirement checks on the program rather than f.e.
heuristics. Thus, for tail calls, we cannot make any assumptions and
are forced to set them.
====================

Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parents 0aa8c13e c2002f98
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -617,6 +617,14 @@ static void fixup_bpf_calls(struct bpf_prog *prog)
			if (insn->imm == BPF_FUNC_xdp_adjust_head)
				prog->xdp_adjust_head = 1;
			if (insn->imm == BPF_FUNC_tail_call) {
				/* If we tail call into other programs, we
				 * cannot make any assumptions since they
				 * can be replaced dynamically during runtime
				 * in the program array.
				 */
				prog->cb_access = 1;
				prog->xdp_adjust_head = 1;

				/* mark bpf_tail_call as different opcode
				 * to avoid conditional branch in
				 * interpeter for every normal call