]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
Fixes for 5.4
authorSasha Levin <sashal@kernel.org>
Sat, 11 May 2024 23:37:42 +0000 (19:37 -0400)
committerSasha Levin <sashal@kernel.org>
Sat, 11 May 2024 23:37:42 +0000 (19:37 -0400)
Signed-off-by: Sasha Levin <sashal@kernel.org>
queue-5.4/net-qede-sanitize-rc-in-qede_add_tc_flower_fltr.patch [new file with mode: 0644]
queue-5.4/net-qede-use-return-from-qede_parse_flow_attr-for-fl.patch-6660 [new file with mode: 0644]
queue-5.4/series

diff --git a/queue-5.4/net-qede-sanitize-rc-in-qede_add_tc_flower_fltr.patch b/queue-5.4/net-qede-sanitize-rc-in-qede_add_tc_flower_fltr.patch
new file mode 100644 (file)
index 0000000..e53f246
--- /dev/null
@@ -0,0 +1,78 @@
+From 696cc563c0c2ea8b6d9f69ce00a2726b0cfae450 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Mon, 6 May 2024 21:24:22 +0000
+Subject: net: qede: sanitize 'rc' in qede_add_tc_flower_fltr()
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+From: Asbjørn Sloth Tønnesen <ast@fiberby.net>
+
+[ Upstream commit e25714466abd9d96901b15efddf82c60a38abd86 ]
+
+Explicitly set 'rc' (return code), before jumping to the
+unlock and return path.
+
+By not having any code depend on that 'rc' remains at
+it's initial value of -EINVAL, then we can re-use 'rc' for
+the return code of function calls in subsequent patches.
+
+Only compile tested.
+
+Signed-off-by: Asbjørn Sloth Tønnesen <ast@fiberby.net>
+Reviewed-by: Simon Horman <horms@kernel.org>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+Stable-dep-of: fcee2065a178 ("net: qede: use return from qede_parse_flow_attr() for flower")
+[ resolved conflict in v5.4, no extack for qede_parse_actions() yet ]
+Signed-off-by: Asbjørn Sloth Tønnesen <ast@fiberby.net>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ drivers/net/ethernet/qlogic/qede/qede_filter.c | 11 ++++++++---
+ 1 file changed, 8 insertions(+), 3 deletions(-)
+
+diff --git a/drivers/net/ethernet/qlogic/qede/qede_filter.c b/drivers/net/ethernet/qlogic/qede/qede_filter.c
+index 31223de0c766e..c02938002278f 100644
+--- a/drivers/net/ethernet/qlogic/qede/qede_filter.c
++++ b/drivers/net/ethernet/qlogic/qede/qede_filter.c
+@@ -1949,8 +1949,8 @@ int qede_add_tc_flower_fltr(struct qede_dev *edev, __be16 proto,
+                           struct flow_cls_offload *f)
+ {
+       struct qede_arfs_fltr_node *n;
+-      int min_hlen, rc = -EINVAL;
+       struct qede_arfs_tuple t;
++      int min_hlen, rc;
+       __qede_lock(edev);
+@@ -1960,8 +1960,10 @@ int qede_add_tc_flower_fltr(struct qede_dev *edev, __be16 proto,
+       }
+       /* parse flower attribute and prepare filter */
+-      if (qede_parse_flow_attr(edev, proto, f->rule, &t))
++      if (qede_parse_flow_attr(edev, proto, f->rule, &t)) {
++              rc = -EINVAL;
+               goto unlock;
++      }
+       /* Validate profile mode and number of filters */
+       if ((edev->arfs->filter_count && edev->arfs->mode != t.mode) ||
+@@ -1969,12 +1971,15 @@ int qede_add_tc_flower_fltr(struct qede_dev *edev, __be16 proto,
+               DP_NOTICE(edev,
+                         "Filter configuration invalidated, filter mode=0x%x, configured mode=0x%x, filter count=0x%x\n",
+                         t.mode, edev->arfs->mode, edev->arfs->filter_count);
++              rc = -EINVAL;
+               goto unlock;
+       }
+       /* parse tc actions and get the vf_id */
+-      if (qede_parse_actions(edev, &f->rule->action))
++      if (qede_parse_actions(edev, &f->rule->action)) {
++              rc = -EINVAL;
+               goto unlock;
++      }
+       if (qede_flow_find_fltr(edev, &t)) {
+               rc = -EEXIST;
+-- 
+2.43.0
+
diff --git a/queue-5.4/net-qede-use-return-from-qede_parse_flow_attr-for-fl.patch-6660 b/queue-5.4/net-qede-use-return-from-qede_parse_flow_attr-for-fl.patch-6660
new file mode 100644 (file)
index 0000000..4ba217a
--- /dev/null
@@ -0,0 +1,58 @@
+From 93a220e90eb6fee2a641635e578001bf9fa875ab Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Mon, 6 May 2024 21:24:23 +0000
+Subject: net: qede: use return from qede_parse_flow_attr() for flower
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+From: Asbjørn Sloth Tønnesen <ast@fiberby.net>
+
+[ Upstream commit fcee2065a178f78be6fd516302830378b17dba3d ]
+
+In qede_add_tc_flower_fltr(), when calling
+qede_parse_flow_attr() then the return code
+was only used for a non-zero check, and then
+-EINVAL was returned.
+
+qede_parse_flow_attr() can currently fail with:
+* -EINVAL
+* -EOPNOTSUPP
+* -EPROTONOSUPPORT
+
+This patch changes the code to use the actual
+return code, not just return -EINVAL.
+
+The blaimed commit introduced these functions.
+
+Only compile tested.
+
+Fixes: 2ce9c93eaca6 ("qede: Ingress tc flower offload (drop action) support.")
+Signed-off-by: Asbjørn Sloth Tønnesen <ast@fiberby.net>
+Reviewed-by: Simon Horman <horms@kernel.org>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ drivers/net/ethernet/qlogic/qede/qede_filter.c | 5 ++---
+ 1 file changed, 2 insertions(+), 3 deletions(-)
+
+diff --git a/drivers/net/ethernet/qlogic/qede/qede_filter.c b/drivers/net/ethernet/qlogic/qede/qede_filter.c
+index c02938002278f..3142d92a98f02 100644
+--- a/drivers/net/ethernet/qlogic/qede/qede_filter.c
++++ b/drivers/net/ethernet/qlogic/qede/qede_filter.c
+@@ -1960,10 +1960,9 @@ int qede_add_tc_flower_fltr(struct qede_dev *edev, __be16 proto,
+       }
+       /* parse flower attribute and prepare filter */
+-      if (qede_parse_flow_attr(edev, proto, f->rule, &t)) {
+-              rc = -EINVAL;
++      rc = qede_parse_flow_attr(edev, proto, f->rule, &t);
++      if (rc)
+               goto unlock;
+-      }
+       /* Validate profile mode and number of filters */
+       if ((edev->arfs->filter_count && edev->arfs->mode != t.mode) ||
+-- 
+2.43.0
+
index a0477d95e91520f9ddeff793a7ff7f36579c961d..bc91addbfc9b6bcc4eec9f046712eea89f5d1710 100644 (file)
@@ -71,3 +71,5 @@ rtnetlink-correct-nested-ifla_vf_vlan_list-attribute.patch
 phonet-fix-rtm_phonet_notify-skb-allocation.patch
 net-bridge-fix-corrupted-ethernet-header-on-multicas.patch
 ipv6-fib6_rules-avoid-possible-null-dereference-in-f.patch
+net-qede-sanitize-rc-in-qede_add_tc_flower_fltr.patch
+net-qede-use-return-from-qede_parse_flow_attr-for-fl.patch-6660