All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sasha Levin <sashal@kernel.org>
To: stable@vger.kernel.org
Cc: Shung-Hsi Yu <shung-hsi.yu@suse.com>, Sasha Levin <sashal@kernel.org>
Subject: Re: [PATCH stable 6.6 03/10] bpf: track changes_pkt_data property for global functions
Date: Thu,  1 May 2025 14:51:08 -0400	[thread overview]
Message-ID: <20250501085016-64eccfcb476717fa@stable.kernel.org> (raw)
In-Reply-To: <20250430081955.49927-4-shung-hsi.yu@suse.com>

[ Sasha's backport helper bot ]

Hi,

✅ All tests passed successfully. No issues detected.
No action required from the submitter.

The upstream commit SHA1 provided is correct: 51081a3f25c742da5a659d7fc6fd77ebfdd555be

WARNING: Author mismatch between patch and upstream commit:
Backport author: Shung-Hsi Yu<shung-hsi.yu@suse.com>
Commit author: Eduard Zingerman<eddyz87@gmail.com>

Status in newer kernel trees:
6.14.y | Present (exact SHA1)
6.12.y | Present (different SHA1: 1d572c60488b)

Note: The patch differs from the upstream commit:
---
1:  51081a3f25c74 ! 1:  5e482602aa8a7 bpf: track changes_pkt_data property for global functions
    @@ Metadata
      ## Commit message ##
         bpf: track changes_pkt_data property for global functions
     
    +    commit 51081a3f25c742da5a659d7fc6fd77ebfdd555be upstream.
    +
         When processing calls to certain helpers, verifier invalidates all
         packet pointers in a current state. For example, consider the
         following program:
    @@ Commit message
         Signed-off-by: Eduard Zingerman <eddyz87@gmail.com>
         Link: https://lore.kernel.org/r/20241210041100.1898468-4-eddyz87@gmail.com
         Signed-off-by: Alexei Starovoitov <ast@kernel.org>
    +    [shung-hsi.yu: do not use bitfield in "struct bpf_subprog_info" because commit
    +    406a6fa44bfb ("bpf: use bitfields for simple per-subprog bool flags") is not
    +    present and minor context difference in check_func_call() because commit
    +    491dd8edecbc ("bpf: Emit global subprog name in verifier logs") is not present. ]
    +    Signed-off-by: Shung-Hsi Yu <shung-hsi.yu@suse.com>
     
      ## include/linux/bpf_verifier.h ##
     @@ include/linux/bpf_verifier.h: struct bpf_subprog_info {
    - 	bool args_cached: 1;
    - 	/* true if bpf_fastcall stack region is used by functions that can't be inlined */
    - 	bool keep_fastcall_stack: 1;
    -+	bool changes_pkt_data: 1;
    + 	bool tail_call_reachable;
    + 	bool has_ld_abs;
    + 	bool is_async_cb;
    ++	bool changes_pkt_data;
    + };
      
    - 	enum priv_stack_mode priv_stack_mode;
    - 	u8 arg_cnt;
    + struct bpf_verifier_env;
     
      ## kernel/bpf/verifier.c ##
     @@ kernel/bpf/verifier.c: static int check_func_call(struct bpf_verifier_env *env, struct bpf_insn *insn,
      
    - 		verbose(env, "Func#%d ('%s') is global and assumed valid.\n",
    - 			subprog, sub_name);
    + 		if (env->log.level & BPF_LOG_LEVEL)
    + 			verbose(env, "Func#%d is global and valid. Skipping.\n", subprog);
     +		if (env->subprog_info[subprog].changes_pkt_data)
     +			clear_all_pkt_pointers(env);
    - 		/* mark global subprog for verifying after main prog */
    - 		subprog_aux(env, subprog)->called = true;
      		clear_caller_saved_regs(env, caller->regs);
    -@@ kernel/bpf/verifier.c: static int check_return_code(struct bpf_verifier_env *env, int regno, const char
    + 
    + 		/* All global functions return a 64-bit SCALAR_VALUE */
    +@@ kernel/bpf/verifier.c: static int check_return_code(struct bpf_verifier_env *env)
      	return 0;
      }
      
---

Results of testing on various branches:

| Branch                    | Patch Apply | Build Test |
|---------------------------|-------------|------------|
| stable/linux-6.12.y       |  Success    |  Success   |

  reply	other threads:[~2025-05-01 18:51 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-04-30  8:19 [PATCH stable 6.6 00/10] bpf: track changes_pkt_data property for global functions Shung-Hsi Yu
2025-04-30  8:19 ` [PATCH stable 6.6 01/10] bpf: add find_containing_subprog() utility function Shung-Hsi Yu
2025-05-01 19:09   ` Sasha Levin
2025-04-30  8:19 ` [PATCH stable 6.6 02/10] bpf: refactor bpf_helper_changes_pkt_data to use helper number Shung-Hsi Yu
2025-05-01 18:51   ` Sasha Levin
2025-04-30  8:19 ` [PATCH stable 6.6 03/10] bpf: track changes_pkt_data property for global functions Shung-Hsi Yu
2025-05-01 18:51   ` Sasha Levin [this message]
2025-04-30  8:19 ` [PATCH stable 6.6 04/10] selftests/bpf: test for changing packet data from " Shung-Hsi Yu
2025-05-01 19:11   ` Sasha Levin
2025-04-30  8:19 ` [PATCH stable 6.6 05/10] bpf: check changes_pkt_data property for extension programs Shung-Hsi Yu
2025-05-01 18:50   ` Sasha Levin
2025-04-30  8:19 ` [PATCH stable 6.6 06/10] selftests/bpf: freplace tests for tracking of changes_packet_data Shung-Hsi Yu
2025-05-01 18:51   ` Sasha Levin
2025-04-30  8:19 ` [PATCH stable 6.6 07/10] bpf: consider that tail calls invalidate packet pointers Shung-Hsi Yu
2025-05-01 19:10   ` Sasha Levin
2025-04-30  8:19 ` [PATCH stable 6.6 08/10] selftests/bpf: validate that tail call invalidates " Shung-Hsi Yu
2025-05-01 19:10   ` Sasha Levin
2025-04-30  8:19 ` [PATCH stable 6.6 09/10] bpf: fix null dereference when computing changes_pkt_data of prog w/o subprogs Shung-Hsi Yu
2025-05-01 18:52   ` Sasha Levin
2025-04-30  8:19 ` [PATCH stable 6.6 10/10] selftests/bpf: extend changes_pkt_data with cases w/o subprograms Shung-Hsi Yu
2025-05-01 19:10   ` Sasha Levin

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=20250501085016-64eccfcb476717fa@stable.kernel.org \
    --to=sashal@kernel.org \
    --cc=shung-hsi.yu@suse.com \
    --cc=stable@vger.kernel.org \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.