RE: [EXT] [bug report] octeontx2-af: Drop rules for NPC MCAM

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



>-----Original Message-----
>From: Dan Carpenter <dan.carpenter@xxxxxxxxxx> 
>Sent: Wednesday, July 13, 2022 5:02 PM
>To: Ratheesh Kannoth <rkannoth@xxxxxxxxxxx>
>Cc: kernel-janitors@xxxxxxxxxxxxxxx
>Subject: [EXT] [bug report] octeontx2-af: Drop rules for NPC MCAM

>External Email

----------------------------------------------------------------------
>Hello Ratheesh Kannoth,

>The patch 3571fe07a090: "octeontx2-af: Drop rules for NPC MCAM" from Jul 8, 2022, leads to the following Smatch static checker warning:
Dan,
Thanks !!

I tried to run smatch tool and could not see any of these errors ? Am I missing any step ?
===
./smatch-master/smatch_scripts/kchecker drivers/net/ethernet/marvell/octeontx2/

  CHECK   drivers/net/ethernet/marvell/octeontx2/af/rvu_sdp.c
  CC      drivers/net/ethernet/marvell/octeontx2/af/rvu_npc_hash.o
  CHECK   drivers/net/ethernet/marvell/octeontx2/af/rvu_npc_hash.c
  AR      drivers/net/ethernet/marvell/octeontx2/af/built-in.a
  CHECK   drivers/net/ethernet/marvell/octeontx2/nic/otx2_pf.c
  CHECK   drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.c
====


>drivers/net/ethernet/marvell/octeontx2/af/rvu_npc_hash.c:1964 rvu_npc_exact_init()
>error: uninitialized symbol 'err'.

>drivers/net/ethernet/marvell/octeontx2/af/rvu_npc_hash.c
 >  1953 
  >  1954                 dev_dbg(rvu->dev,
  >  1955                         "%s:Drop rule cgx=%d lmac=%d chan(val=0x%llx, mask=0x%llx\n",
   > 1956                         __func__, cgx_id, lmac_id, chan_val, chan_mask);
>    1957 
 >   1958                 rc = rvu_npc_exact_save_drop_rule_chan_and_mask(rvu, table->num_drop_rules,
 >   1959                                                                 chan_val, chan_mask, pcifunc);
 >   1960                 if (!rc) {
  >  1961                         dev_err(rvu->dev,
   > 1962                                 "%s: failed to set drop info for cgx=%d, lmac=%d, chan=%llx\n",
  >  1963                                 __func__, cgx_id, lmac_id, chan_val);
--> 1964                         return err;


>"err" is uninitialized.  This should be return -EINVAL or something.

Fixed by 6a605eb1d71ea8cec50bdf7151c772c599a5fb70 commit. 

>Let me just send the whole list.  The rest are mostly caused by no error checking.  It's possibly deliberate.  Hard to tell without knowing the subsystem more deeply.

>drivers/net/ethernet/marvell/octeontx2/af/rvu_npc_hash.c:1232 rvu_npc_exact_del_table_entry_by_id() error: uninitialized symbol 'drop_mcam_idx'.
>drivers/net/ethernet/marvell/octeontx2/af/rvu_npc_hash.c:1312 rvu_npc_exact_add_table_entry() error: uninitialized symbol 'drop_mcam_idx'.
>drivers/net/ethernet/marvell/octeontx2/af/rvu_npc_hash.c:1391 rvu_npc_exact_update_table_entry() error: uninitialized symbol 'hash_index'.
>drivers/net/ethernet/marvell/octeontx2/af/rvu_npc_hash.c:1428 rvu_npc_exact_promisc_disable() error: uninitialized symbol 'drop_mcam_idx'.
>drivers/net/ethernet/marvell/octeontx2/af/rvu_npc_hash.c:1473 rvu_npc_exact_promisc_enable() error: uninitialized symbol 'drop_mcam_idx'.
Will fix and post patch.

>drivers/net/ethernet/marvell/octeontx2/af/rvu_npc_hash.c:1964 rvu_npc_exact_init() error: uninitialized symbol 'err'.
Fixed by 6a605eb1d71ea8cec50bdf7151c772c599a5fb70 commit.

>drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.h:735 otx2_mbox_alloc_msg_npc_get_secret_key() warn: struct type mismatch 'mbox_msghdr vs npc_get_secret_key_req'
I don't see any issue in the code. 

>drivers/net/ethernet/marvell/octeontx2/nic/otx2_dmac_flt.c:191 otx2_dmacflt_update() error: 'rsp' dereferencing possible ERR_PTR()
>drivers/net/ethernet/marvell/octeontx2/nic/otx2_dmac_flt.c:60 otx2_dmacflt_add_pfmac() error: 'rsp' dereferencing possible ERR_PTR()
Fixed. Will post new patch.



    1965                 }
    1966 
    1967                 err = npc_install_mcam_drop_rule(rvu, *drop_mcam_idx,
    1968                                                  &table->counter_idx[*drop_mcam_idx],
    1969                                                  chan_val, chan_mask,
    1970                                                  exact_val, exact_mask,
    1971                                                  bcast_mcast_val, bcast_mcast_mask);
    1972                 if (err) {
    1973                         dev_err(rvu->dev,
    1974                                 "failed to configure drop rule (cgx=%d lmac=%d)\n",
    1975                                 cgx_id, lmac_id);
    1976                         return err;
    1977                 }
    1978 
    1979                 (*drop_mcam_idx)++;
    1980         }
    1981 
    1982         dev_info(rvu->dev, "initialized exact match table successfully\n");
    1983         return 0;
    1984 }

regards,
dan carpenter




[Index of Archives]     [Kernel Development]     [Kernel Announce]     [Kernel Newbies]     [Linux Networking Development]     [Share Photos]     [IDE]     [Security]     [Git]     [Netfilter]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Device Mapper]

  Powered by Linux