summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorIdo Schimmel <idosch@nvidia.com>2021-08-19 13:58:42 +0300
committerSasha Levin <sashal@kernel.org>2021-08-26 08:35:52 -0400
commit645fd92c3ed4e3722a4d38fb1b4b2049529b7ebf (patch)
tree1ad7d87f1ceb30f28868af316cd06b672a13aef2 /include
parent2f6c42806e10dc135cc5fe1ea1712b10f90aa1de (diff)
downloadlinux-stable-645fd92c3ed4e3722a4d38fb1b4b2049529b7ebf.tar.gz
linux-stable-645fd92c3ed4e3722a4d38fb1b4b2049529b7ebf.tar.bz2
linux-stable-645fd92c3ed4e3722a4d38fb1b4b2049529b7ebf.zip
Revert "flow_offload: action should not be NULL when it is referenced"
[ Upstream commit fa05bdb89b01b098aad19ec0ebc4d1cc7b11177e ] This reverts commit 9ea3e52c5bc8bb4a084938dc1e3160643438927a. Cited commit added a check to make sure 'action' is not NULL, but 'action' is already dereferenced before the check, when calling flow_offload_has_one_action(). Therefore, the check does not make any sense and results in a smatch warning: include/net/flow_offload.h:322 flow_action_mixed_hw_stats_check() warn: variable dereferenced before check 'action' (see line 319) Fix by reverting this commit. Cc: gushengxian <gushengxian@yulong.com> Fixes: 9ea3e52c5bc8 ("flow_offload: action should not be NULL when it is referenced") Signed-off-by: Ido Schimmel <idosch@nvidia.com> Acked-by: Jamal Hadi Salim <jhs@mojatatu.com> Link: https://lore.kernel.org/r/20210819105842.1315705-1-idosch@idosch.org Signed-off-by: Jakub Kicinski <kuba@kernel.org> Signed-off-by: Sasha Levin <sashal@kernel.org>
Diffstat (limited to 'include')
-rw-r--r--include/net/flow_offload.h12
1 files changed, 5 insertions, 7 deletions
diff --git a/include/net/flow_offload.h b/include/net/flow_offload.h
index 161b90979038..123b1e9ea304 100644
--- a/include/net/flow_offload.h
+++ b/include/net/flow_offload.h
@@ -312,14 +312,12 @@ flow_action_mixed_hw_stats_check(const struct flow_action *action,
if (flow_offload_has_one_action(action))
return true;
- if (action) {
- flow_action_for_each(i, action_entry, action) {
- if (i && action_entry->hw_stats != last_hw_stats) {
- NL_SET_ERR_MSG_MOD(extack, "Mixing HW stats types for actions is not supported");
- return false;
- }
- last_hw_stats = action_entry->hw_stats;
+ flow_action_for_each(i, action_entry, action) {
+ if (i && action_entry->hw_stats != last_hw_stats) {
+ NL_SET_ERR_MSG_MOD(extack, "Mixing HW stats types for actions is not supported");
+ return false;
}
+ last_hw_stats = action_entry->hw_stats;
}
return true;
}