[<prev] [next>] [day] [month] [year] [list]
Message-ID: <aYXvAC64pI98jgdY@stanley.mountain>
Date: Fri, 6 Feb 2026 16:39:12 +0300
From: Dan Carpenter <dan.carpenter@...aro.org>
To: Grygorii Strashko <grygorii.strashko@...com>
Cc: netdev@...r.kernel.org, linux-kernel <linux-kernel@...r.kernel.org>
Subject: [bug report] net: ethernet: ti: am65-cpsw: enable bc/mc storm
prevention support
[ Smatch checking is paused while we raise funding. #SadFace
https://lore.kernel.org/all/aTaiGSbWZ9DJaGo7@stanley.mountain/ -dan ]
Hello Grygorii Strashko,
Commit 5ec836be11b3 ("net: ethernet: ti: am65-cpsw: enable bc/mc
storm prevention support") from Apr 12, 2022 (linux-next), leads to
the following Smatch static checker warning:
drivers/net/ethernet/ti/am65-cpsw-qos.c:1126 am65_cpsw_qos_configure_clsflower()
warn: iterator 'i' not incremented
drivers/net/ethernet/ti/am65-cpsw-qos.c
1118 static int am65_cpsw_qos_configure_clsflower(struct am65_cpsw_port *port,
1119 struct flow_cls_offload *cls)
1120 {
1121 struct flow_rule *rule = flow_cls_offload_flow_rule(cls);
1122 struct netlink_ext_ack *extack = cls->common.extack;
1123 const struct flow_action_entry *act;
1124 int i, ret;
1125
--> 1126 flow_action_for_each(i, act, &rule->action) {
This loop only iterates one time. Is that intentional? We could
use "act = flow_action_first_entry_geti(&rule->action);" if we just
want the first entry.
1127 switch (act->id) {
1128 case FLOW_ACTION_POLICE:
1129 ret = am65_cpsw_qos_clsflower_policer_validate(&rule->action, act, extack);
1130 if (ret)
1131 return ret;
1132
1133 return am65_cpsw_qos_clsflower_add_policer(port, extack, cls,
1134 act->police.rate_pkt_ps);
1135 default:
1136 NL_SET_ERR_MSG_MOD(extack,
1137 "Action not supported");
1138 return -EOPNOTSUPP;
1139 }
1140 }
1141 return -EOPNOTSUPP;
1142 }
regards,
dan carpenter
Powered by blists - more mailing lists