public inbox for netdev@vger.kernel.org
 help / color / mirror / Atom feed
From: Martin KaFai Lau <martin.lau@linux.dev>
To: Feng Yang <yangfeng59949@163.com>
Cc: davem@davemloft.net, edumazet@google.com, kuba@kernel.org,
	pabeni@redhat.com, horms@kernel.org, posk@google.com,
	ast@kernel.org, daniel@iogearbox.net, andrii@kernel.org,
	eddyz87@gmail.com, bpf@vger.kernel.org, netdev@vger.kernel.org,
	linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org
Subject: Re: [PATCH v9 bpf-next 2/2] selftests/bpf: Add selftests for the invocation of bpf_lwt_xmit_push_encap
Date: Tue, 3 Mar 2026 13:13:59 -0800	[thread overview]
Message-ID: <6302ae47-88b0-40cf-9b02-ff35f7292ec1@linux.dev> (raw)
In-Reply-To: <20260303074423.172680-3-yangfeng59949@163.com>



On 3/2/26 11:44 PM, Feng Yang wrote:
> From: Feng Yang <yangfeng@kylinos.cn>
> 
> Calling bpf_lwt_xmit_push_encap will not cause a crash when dst is missing.
> 
> Signed-off-by: Feng Yang <yangfeng@kylinos.cn>
> ---
>   .../selftests/bpf/progs/verifier_lwt.c        | 20 +++++++++++++++++++
>   1 file changed, 20 insertions(+)
> 
> diff --git a/tools/testing/selftests/bpf/progs/verifier_lwt.c b/tools/testing/selftests/bpf/progs/verifier_lwt.c
> index 5ab746307309..9cef07e6eceb 100644
> --- a/tools/testing/selftests/bpf/progs/verifier_lwt.c
> +++ b/tools/testing/selftests/bpf/progs/verifier_lwt.c
> @@ -231,4 +231,24 @@ __naked void not_permitted_for_lwt_prog(void)
>   	: __clobber_all);
>   }
>   
> +SEC("lwt_xmit")
> +__description("missing dst when calling bpf_lwt_xmit_push_encap")
> +__success __retval(0)
> +__naked void missing_dst_call_bpf_lwt_xmit_push_encap(void)
> +{
> +	asm volatile ("					\
> +	r9 = 69;					\

hmm... I just noticed this.

69 is the ip version and ihl?

> +	r3 = r10;					\
> +	r3 += -32;					\
> +	*(u64 *)(r3 + 0) = r9;				\

This will not work in big endian. Although x86 arch is enough to cover 
this test, these little things (e.g., the value 69, unnecessary asm 
...etc) make this test hard to read.

Let's bite the bullet and move this bpf test prog out of verifier_lwt.c. 
It is not testing the verifier to begin with. No need to write in asm 
either. Create its own progs/lwt_misc.c test file for misc lwt tests. 
Create a corresponding prog_tests/lwt_misc.c also. Write the bpf prog in 
C instead of asm. Use "char iph[20];" for the iph and init "iph[0] = 
0x45". Search for RUN_TESTS() usage in prog_tests/. It is pretty 
straightforward.

pw-bot: cr

> +	r2 = 2;						\
> +	r4 = 20;					\
> +	call %[bpf_lwt_push_encap];			\
> +	r0 = 0;						\
> +	exit;						\
> +"	:
> +	: __imm(bpf_lwt_push_encap)
> +	: __clobber_all);
> +}
> +
>   char _license[] SEC("license") = "GPL";


      reply	other threads:[~2026-03-03 21:14 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-03-03  7:44 [PATCH v9 bpf-next 0/2] Fix the null pointer dereference issue in bpf_lwt_xmit_push_encap Feng Yang
2026-03-03  7:44 ` [PATCH v9 bpf-next 1/2] bpf: test_run: " Feng Yang
2026-03-03 21:31   ` Martin KaFai Lau
2026-03-03  7:44 ` [PATCH v9 bpf-next 2/2] selftests/bpf: Add selftests for the invocation of bpf_lwt_xmit_push_encap Feng Yang
2026-03-03 21:13   ` Martin KaFai Lau [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=6302ae47-88b0-40cf-9b02-ff35f7292ec1@linux.dev \
    --to=martin.lau@linux.dev \
    --cc=andrii@kernel.org \
    --cc=ast@kernel.org \
    --cc=bpf@vger.kernel.org \
    --cc=daniel@iogearbox.net \
    --cc=davem@davemloft.net \
    --cc=eddyz87@gmail.com \
    --cc=edumazet@google.com \
    --cc=horms@kernel.org \
    --cc=kuba@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-kselftest@vger.kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=pabeni@redhat.com \
    --cc=posk@google.com \
    --cc=yangfeng59949@163.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox