CC: [email protected] CC: [email protected] TO: Taehee Yoo <[email protected]>
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master head: 0adc313c4f20639f7e235b8d6719d96a2024cf91 commit: 1fc70edb7d7b5ce1ae32b0cf90183f4879ad421a net: core: add nested_level variable in net_device date: 4 weeks ago :::::: branch date: 2 hours ago :::::: commit date: 4 weeks ago config: s390-randconfig-m031-20201023 (attached as .config) compiler: s390-linux-gcc (GCC) 9.3.0 If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <[email protected]> Reported-by: Dan Carpenter <[email protected]> smatch warnings: drivers/net/ethernet/broadcom/bnxt/bnxt.c:10055 bnxt_cfg_rx_mode() error: double unlocked 'dev->addr_list_lock' (orig line 10024) vim +10055 drivers/net/ethernet/broadcom/bnxt/bnxt.c c0c050c58d8409 Michael Chan 2015-10-22 10013 b664f008b0d885 Michael Chan 2015-12-02 10014 static int bnxt_cfg_rx_mode(struct bnxt *bp) c0c050c58d8409 Michael Chan 2015-10-22 10015 { c0c050c58d8409 Michael Chan 2015-10-22 10016 struct net_device *dev = bp->dev; c0c050c58d8409 Michael Chan 2015-10-22 10017 struct bnxt_vnic_info *vnic = &bp->vnic_info[0]; c0c050c58d8409 Michael Chan 2015-10-22 10018 struct netdev_hw_addr *ha; c0c050c58d8409 Michael Chan 2015-10-22 10019 int i, off = 0, rc; c0c050c58d8409 Michael Chan 2015-10-22 10020 bool uc_update; c0c050c58d8409 Michael Chan 2015-10-22 10021 c0c050c58d8409 Michael Chan 2015-10-22 10022 netif_addr_lock_bh(dev); c0c050c58d8409 Michael Chan 2015-10-22 10023 uc_update = bnxt_uc_list_updated(bp); c0c050c58d8409 Michael Chan 2015-10-22 @10024 netif_addr_unlock_bh(dev); c0c050c58d8409 Michael Chan 2015-10-22 10025 c0c050c58d8409 Michael Chan 2015-10-22 10026 if (!uc_update) c0c050c58d8409 Michael Chan 2015-10-22 10027 goto skip_uc; c0c050c58d8409 Michael Chan 2015-10-22 10028 c0c050c58d8409 Michael Chan 2015-10-22 10029 mutex_lock(&bp->hwrm_cmd_lock); c0c050c58d8409 Michael Chan 2015-10-22 10030 for (i = 1; i < vnic->uc_filter_count; i++) { c0c050c58d8409 Michael Chan 2015-10-22 10031 struct hwrm_cfa_l2_filter_free_input req = {0}; c0c050c58d8409 Michael Chan 2015-10-22 10032 c0c050c58d8409 Michael Chan 2015-10-22 10033 bnxt_hwrm_cmd_hdr_init(bp, &req, HWRM_CFA_L2_FILTER_FREE, -1, c0c050c58d8409 Michael Chan 2015-10-22 10034 -1); c0c050c58d8409 Michael Chan 2015-10-22 10035 c0c050c58d8409 Michael Chan 2015-10-22 10036 req.l2_filter_id = vnic->fw_l2_filter_id[i]; c0c050c58d8409 Michael Chan 2015-10-22 10037 c0c050c58d8409 Michael Chan 2015-10-22 10038 rc = _hwrm_send_message(bp, &req, sizeof(req), c0c050c58d8409 Michael Chan 2015-10-22 10039 HWRM_CMD_TIMEOUT); c0c050c58d8409 Michael Chan 2015-10-22 10040 } c0c050c58d8409 Michael Chan 2015-10-22 10041 mutex_unlock(&bp->hwrm_cmd_lock); c0c050c58d8409 Michael Chan 2015-10-22 10042 c0c050c58d8409 Michael Chan 2015-10-22 10043 vnic->uc_filter_count = 1; c0c050c58d8409 Michael Chan 2015-10-22 10044 c0c050c58d8409 Michael Chan 2015-10-22 10045 netif_addr_lock_bh(dev); c0c050c58d8409 Michael Chan 2015-10-22 10046 if (netdev_uc_count(dev) > (BNXT_MAX_UC_ADDRS - 1)) { c0c050c58d8409 Michael Chan 2015-10-22 10047 vnic->rx_mask |= CFA_L2_SET_RX_MASK_REQ_MASK_PROMISCUOUS; c0c050c58d8409 Michael Chan 2015-10-22 10048 } else { c0c050c58d8409 Michael Chan 2015-10-22 10049 netdev_for_each_uc_addr(ha, dev) { c0c050c58d8409 Michael Chan 2015-10-22 10050 memcpy(vnic->uc_list + off, ha->addr, ETH_ALEN); c0c050c58d8409 Michael Chan 2015-10-22 10051 off += ETH_ALEN; c0c050c58d8409 Michael Chan 2015-10-22 10052 vnic->uc_filter_count++; c0c050c58d8409 Michael Chan 2015-10-22 10053 } c0c050c58d8409 Michael Chan 2015-10-22 10054 } c0c050c58d8409 Michael Chan 2015-10-22 @10055 netif_addr_unlock_bh(dev); c0c050c58d8409 Michael Chan 2015-10-22 10056 c0c050c58d8409 Michael Chan 2015-10-22 10057 for (i = 1, off = 0; i < vnic->uc_filter_count; i++, off += ETH_ALEN) { c0c050c58d8409 Michael Chan 2015-10-22 10058 rc = bnxt_hwrm_set_vnic_filter(bp, 0, i, vnic->uc_list + off); c0c050c58d8409 Michael Chan 2015-10-22 10059 if (rc) { c0c050c58d8409 Michael Chan 2015-10-22 10060 netdev_err(bp->dev, "HWRM vnic filter failure rc: %x\n", c0c050c58d8409 Michael Chan 2015-10-22 10061 rc); c0c050c58d8409 Michael Chan 2015-10-22 10062 vnic->uc_filter_count = i; b664f008b0d885 Michael Chan 2015-12-02 10063 return rc; c0c050c58d8409 Michael Chan 2015-10-22 10064 } c0c050c58d8409 Michael Chan 2015-10-22 10065 } c0c050c58d8409 Michael Chan 2015-10-22 10066 c0c050c58d8409 Michael Chan 2015-10-22 10067 skip_uc: c0c050c58d8409 Michael Chan 2015-10-22 10068 rc = bnxt_hwrm_cfa_l2_set_rx_mask(bp, 0); b4e30e8e7ea1d1 Michael Chan 2019-04-25 10069 if (rc && vnic->mc_list_count) { b4e30e8e7ea1d1 Michael Chan 2019-04-25 10070 netdev_info(bp->dev, "Failed setting MC filters rc: %d, turning on ALL_MCAST mode\n", b4e30e8e7ea1d1 Michael Chan 2019-04-25 10071 rc); b4e30e8e7ea1d1 Michael Chan 2019-04-25 10072 vnic->rx_mask |= CFA_L2_SET_RX_MASK_REQ_MASK_ALL_MCAST; b4e30e8e7ea1d1 Michael Chan 2019-04-25 10073 vnic->mc_list_count = 0; b4e30e8e7ea1d1 Michael Chan 2019-04-25 10074 rc = bnxt_hwrm_cfa_l2_set_rx_mask(bp, 0); b4e30e8e7ea1d1 Michael Chan 2019-04-25 10075 } c0c050c58d8409 Michael Chan 2015-10-22 10076 if (rc) b4e30e8e7ea1d1 Michael Chan 2019-04-25 10077 netdev_err(bp->dev, "HWRM cfa l2 rx mask failure rc: %d\n", c0c050c58d8409 Michael Chan 2015-10-22 10078 rc); b664f008b0d885 Michael Chan 2015-12-02 10079 b664f008b0d885 Michael Chan 2015-12-02 10080 return rc; c0c050c58d8409 Michael Chan 2015-10-22 10081 } c0c050c58d8409 Michael Chan 2015-10-22 10082 :::::: The code at line 10055 was first introduced by commit :::::: c0c050c58d840994ba842ad1c338a98e7c12b764 bnxt_en: New Broadcom ethernet driver. :::::: TO: Michael Chan <[email protected]> :::::: CC: David S. Miller <[email protected]> --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/[email protected]
.config.gz
Description: application/gzip
_______________________________________________ kbuild mailing list -- [email protected] To unsubscribe send an email to [email protected]
