2019-12-19 17:59:35

by Aditya Pakki

[permalink] [raw]
Subject: [PATCH v2] bpf: Remove unnecessary assertion on fp_old

The two callers of bpf_prog_realloc - bpf_patch_insn_single and
bpf_migrate_filter dereference the struct fp_old, before passing
it to the function. Thus assertion to check fp_old is unnecessary
and can be removed.

Signed-off-by: Aditya Pakki <[email protected]>
---
v1: Remove the check on fp_old altogether, as suggested by
Daniel Borkmann and Alexei Starovoitov.
---
kernel/bpf/core.c | 2 --
1 file changed, 2 deletions(-)

diff --git a/kernel/bpf/core.c b/kernel/bpf/core.c
index 49e32acad7d8..ca010b783687 100644
--- a/kernel/bpf/core.c
+++ b/kernel/bpf/core.c
@@ -222,8 +222,6 @@ struct bpf_prog *bpf_prog_realloc(struct bpf_prog *fp_old, unsigned int size,
u32 pages, delta;
int ret;

- BUG_ON(fp_old == NULL);
-
size = round_up(size, PAGE_SIZE);
pages = size / PAGE_SIZE;
if (pages <= fp_old->pages)
--
2.20.1


2019-12-19 21:27:22

by Daniel Borkmann

[permalink] [raw]
Subject: Re: [PATCH v2] bpf: Remove unnecessary assertion on fp_old

On Thu, Dec 19, 2019 at 11:57:35AM -0600, Aditya Pakki wrote:
> The two callers of bpf_prog_realloc - bpf_patch_insn_single and
> bpf_migrate_filter dereference the struct fp_old, before passing
> it to the function. Thus assertion to check fp_old is unnecessary
> and can be removed.
>
> Signed-off-by: Aditya Pakki <[email protected]>

Applied, thanks!