From nobody Wed Sep 16 14:12:46 2026 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4hlLSb0zfhz6rXC9 for ; Wed, 16 Sep 2026 14:12:47 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "YR2" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4hlLSb0232z3M0G for ; Wed, 16 Sep 2026 14:12:47 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1789567967; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ZnXNuA5oOvxSypcMBQy32eQx/+zdH+aR1HANu8Yx9IQ=; b=SqOZ56R6VbraB7GtB1aEfaDG8dorqq++0rm8ECd66qTC+vx7kivsmT98328y70n1OWaHnx L5JAtJUzrUiVclN1Q/lPWSkoziEui03moCa4qTRvK9SqlyGoxopgXt163ZISeOQFncDW3H GngRwr+/Y4y9ErTr3HKjb8XVylNZIzRKmBfMj5P5bo6IkQPX86j/NeyAYjNnyBvb9otL1D 9GXP9n/vdF0a3ku2SwFKh+HQTJ5eHQDLiHGhfD0DZGNyL+B+WWXSTEO46dRmCE77HAiZCJ yYm43HcI+c7SPCqJZqOZifPVufTYpfk/M3CXBR19Ub15iACl7lt3qnaXtV7i5g== ARC-Seal: i=1; a=rsa-sha256; d=freebsd.org; s=dkim; cv=none; t=1789567967; b=VWxQfB40ie6X/yJMipfNmCkxqgZtuxysRtSOo3Oh3YNa32NbFendu1FOPMBhRVa1QjOSCS sNw1cWLB0TBSAuT4gVHsIuYxBkxHRpV7qA7uyQcbrCn76c2OWLG8ssjr3gwgWcLIynNDz8 Ms1GrPIjvEVAshCeYIouAjcklp80gDYcKYp8YU5js4keQAO0MD3EZxnJeSxNrZcAJqylG6 jlZgLhVQ5XSD+O/8yP8A2/I6pD/+lnBbxLpag3IhAjp6KKP4XQSGxLQUbfaMwmJ9BrwQbT BOaXPpl+YvQpDRbiFzLN0eqo+LYjto7Sja7v8PDTdatuiW9hBtAaPh+ebaJBHg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1789567967; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ZnXNuA5oOvxSypcMBQy32eQx/+zdH+aR1HANu8Yx9IQ=; b=Kr+XaUeqF2A/ZhUG+X9IFwIAx9SuMqFgvxW7heOUNk07doogAHZxk/pCXmSrw7VPbGlmkY kIfxIQl/npamJNxD/MwsVY9A+DZfdw4wDVqNiwdG4SmkCjWlL5kMIL02+vs+SyaAUG5K1Q cQ7oChljRmdWHrssoecZ83wLjzVobv5Ngyl3gymBnFwOhi8ZJv0LVr68tXSGnlNatqRu1K yfrAWz2/dIapD7Br5YnvM1tT/kgS2IGSTncZ08d+5IUo7jzRLGZlqKI3eC1W41Z4NoBkP9 vIbONj+r6ZjbndJKbp0DZNXwc7+IadFsxoPxaeaIEh5sfGz3yYYd2VDzgRuI2Q== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4hlLSZ6CGqzqH5 for ; Wed, 16 Sep 2026 14:12:46 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3614b by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 16 Sep 2026 14:12:46 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org Cc: Ariel Ehrenberg From: Konstantin Belousov Subject: git: 5aa5bfd3f99c - main - fixup! mlx5ib: Add drop flow steering rule support List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-all@freebsd.org Sender: owner-dev-commits-src-all@FreeBSD.org List-Id: List-Post: List-Help: List-Subscribe: List-Unsubscribe: List-Owner: Precedence: list MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 5aa5bfd3f99cde0da68c27da3e3be8506c829efe Auto-Submitted: auto-generated Date: Wed, 16 Sep 2026 14:12:46 +0000 Message-Id: <6aaaa3de.3614b.2b23da7b@gitrepo.freebsd.org> The branch main has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=5aa5bfd3f99cde0da68c27da3e3be8506c829efe commit 5aa5bfd3f99cde0da68c27da3e3be8506c829efe Author: Ariel Ehrenberg AuthorDate: 2026-07-28 12:02:39 +0000 Commit: Konstantin Belousov CommitDate: 2026-09-16 14:12:07 +0000 fixup! mlx5ib: Add drop flow steering rule support Fix is based on upstream Linux commit a22ed86cff36 ("IB/mlx5: Add drop flow steering rule support"). Initialise is_drop to false so a non-DROP flow cannot inherit stack garbage, and pass no destination to mlx5_add_flow_rules() for drop rules instead of one with num_dest = 1, which the flow steering core dereferences. Both were lost in the original backport. Derive the destination count from dst as well, so the dont-trap path, which calls create_flow_rule() with a NULL destination, no longer asks the core to walk a destination array that is not there. Sponsored by: NVidia networking MFC after: 1 month --- sys/dev/mlx5/mlx5_ib/mlx5_ib_main.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/sys/dev/mlx5/mlx5_ib/mlx5_ib_main.c b/sys/dev/mlx5/mlx5_ib/mlx5_ib_main.c index 462306465a8e..e598291685d7 100644 --- a/sys/dev/mlx5/mlx5_ib/mlx5_ib_main.c +++ b/sys/dev/mlx5/mlx5_ib/mlx5_ib_main.c @@ -2250,12 +2250,14 @@ static struct mlx5_ib_flow_handler *create_flow_rule(struct mlx5_ib_dev *dev, struct mlx5_flow_table *ft = ft_prio->flow_table; struct mlx5_ib_flow_handler *handler; struct mlx5_flow_spec *spec; + struct mlx5_flow_destination *rule_dst = dst; const void *ib_flow = (const void *)flow_attr + sizeof(*flow_attr); unsigned int spec_index; struct mlx5_flow_act flow_act = {}; - bool is_drop; + bool is_drop = false; u32 action; int err = 0; + int dest_num = dst ? 1 : 0; if (!is_valid_attr(flow_attr)) return ERR_PTR(-EINVAL); @@ -2282,12 +2284,16 @@ static struct mlx5_ib_flow_handler *create_flow_rule(struct mlx5_ib_dev *dev, } spec->match_criteria_enable = get_match_criteria_enable(spec->match_criteria); - if (is_drop) + if (is_drop) { action = MLX5_FLOW_CONTEXT_ACTION_DROP; - else + rule_dst = NULL; + dest_num = 0; + } else { action = dst ? MLX5_FLOW_CONTEXT_ACTION_FWD_DEST : 0; + } flow_act.action = action; - handler->rule = mlx5_add_flow_rules(ft, spec, &flow_act, dst, 1); + handler->rule = mlx5_add_flow_rules(ft, spec, &flow_act, rule_dst, + dest_num); if (IS_ERR(handler->rule)) { err = PTR_ERR(handler->rule);