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

Commit 98fb24af authored by Andrey Utkin's avatar Andrey Utkin Committed by Ralf Baechle
Browse files

arch/mips/net/bpf_jit.c: fix failure check



static int pkt_type_offset(void) returned -1 in case of failure, and actual
(positive) offset value in case of success. In the only instance of its usage,
the result was saved to local "unsigned int off" variable, which is used in a
lot of places in the same (large) function, so changing its type could cause
many warnings. So new signed int variable was added.

Signed-off-by: default avatarAndrey Utkin <andrey.krieger.utkin@gmail.com>
Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=80371


Reported-by: default avatarDavid Binderman <dcb314@hotmail.com>
Cc: linux-kernel@vger.kernel.org
Cc: kernel-janitors@vger.kernel.org
Cc: linux-mips@linux-mips.org
Cc: dborkman@redhat.com
Cc: markos.chandras@imgtec.com
Patchwork: https://patchwork.linux-mips.org/patch/7380/


Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
parent 68c77d8a
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -793,6 +793,7 @@ static int build_body(struct jit_ctx *ctx)
	const struct sock_filter *inst;
	unsigned int i, off, load_order, condt;
	u32 k, b_off __maybe_unused;
	int tmp;

	for (i = 0; i < prog->len; i++) {
		u16 code;
@@ -1332,9 +1333,9 @@ static int build_body(struct jit_ctx *ctx)
		case BPF_ANC | SKF_AD_PKTTYPE:
			ctx->flags |= SEEN_SKB;

			off = pkt_type_offset();
			tmp = off = pkt_type_offset();

			if (off < 0)
			if (tmp < 0)
				return -1;
			emit_load_byte(r_tmp, r_skb, off, ctx);
			/* Keep only the last 3 bits */