[<prev] [next>] [day] [month] [year] [list]
Message-ID: <8fc78a8c-08cb-467a-f333-031f084e3f73@canonical.com>
Date: Thu, 22 Jul 2021 19:47:06 +0100
From: Colin Ian King <colin.king@...onical.com>
To: Subbaraya Sundeep <sbhatta@...vell.com>
Cc: Sunil Goutham <sgoutham@...vell.com>,
Linu Cherian <lcherian@...vell.com>,
Linu Cherian <lcherian@...vell.com>,
Jerin Jacob <jerinj@...vell.com>,
hariprasad <hkelam@...vell.com>,
"David S. Miller" <davem@...emloft.net>,
Jakub Kicinski <kuba@...nel.org>,
"netdev@...r.kernel.org" <netdev@...r.kernel.org>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>
Subject: re: octeontx2-af: Introduce internal packet switching
Hi,
Static analysis of linux-next with Coverity has found a couple of
uninitialized variable issues in the following commit:
commit 23109f8dd06d0bd04c9360cf7c501c97b0ab1545
Author: Subbaraya Sundeep <sbhatta@...vell.com>
Date: Mon Jul 19 14:29:34 2021 +0530
octeontx2-af: Introduce internal packet switching
The analysis is as follows:
195void rvu_switch_disable(struct rvu *rvu)
196{
197 struct npc_delete_flow_req uninstall_req = { 0 };
198 struct npc_mcam_free_entry_req free_req = { 0 };
199 struct rvu_switch *rswitch = &rvu->rswitch;
200 struct rvu_hwinfo *hw = rvu->hw;
1. var_decl: Declaring variable numvfs without initializer.
201 int pf, vf, numvfs, hwvf;
202 struct msg_rsp rsp;
203 u16 pcifunc;
204 int err;
205
2. Condition !rswitch->used_entries, taking false branch.
206 if (!rswitch->used_entries)
207 return;
208
3. Condition pf < hw->total_pfs, taking true branch.
209 for (pf = 1; pf < hw->total_pfs; pf++) {
4. Condition !is_pf_cgxmapped(rvu, pf), taking false branch.
210 if (!is_pf_cgxmapped(rvu, pf))
211 continue;
212
213 pcifunc = pf << 10;
214 err = rvu_switch_install_rx_rule(rvu, pcifunc, 0xFFF);
5. Condition err, taking false branch.
215 if (err)
216 dev_err(rvu->dev,
217 "Reverting RX rule for PF%d
failed(%d)\n",
218 pf, err);
219
Uninitialized scalar variable (UNINIT)
6. uninit_use: Using uninitialized value numvfs.
Uninitialized scalar variable (UNINIT)
9. uninit_use: Using uninitialized value hwvf.
220 for (vf = 0; vf < numvfs; vf++, hwvf++) {
221 pcifunc = pf << 10 | ((vf + 1) & 0x3FF);
222 err = rvu_switch_install_rx_rule(rvu,
pcifunc, 0xFFF);
7. Condition err, taking false branch.
223 if (err)
224 dev_err(rvu->dev,
225 "Reverting RX rule for
PF%dVF%d failed(%d)\n",
226 pf, vf, err);
227 }
8. Jumping back to the beginning of the loop.
228 }
229
230 uninstall_req.start = rswitch->start_entry;
231 uninstall_req.end = rswitch->start_entry +
rswitch->used_entries - 1;
232 free_req.all = 1;
233 rvu_mbox_handler_npc_delete_flow(rvu, &uninstall_req, &rsp);
234 rvu_mbox_handler_npc_mcam_free_entry(rvu, &free_req, &rsp);
235 rswitch->used_entries = 0;
236 kfree(rswitch->entry2pcifunc);
237}
Colin
Powered by blists - more mailing lists