lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [day] [month] [year] [list]
Message-ID: <202108271529.3NsGzQIF-lkp@intel.com>
Date:   Fri, 27 Aug 2021 15:09:11 +0800
From:   kernel test robot <lkp@...el.com>
To:     Ryder Lee <ryder.lee@...iatek.com>
Cc:     llvm@...ts.linux.dev, kbuild-all@...ts.01.org,
        linux-kernel@...r.kernel.org, Felix Fietkau <nbd@....name>
Subject: [nbd168-wireless:mt76 52/56]
 drivers/net/wireless/mediatek/mt76/mt7915/mcu.c:2105:3: warning: variable
 'nrates' is uninitialized when used here

tree:   https://github.com/nbd168/wireless mt76
head:   9c19de7d8b1d007dc5f2c396c26ef6a45d4097fc
commit: 48469214f50cda8765f3800360997f06886eb331 [52/56] mt76: mt7915: rework .set_bitrate_mask() to support more options
config: i386-randconfig-a005-20210827 (attached as .config)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project 1076082a0d97bd5c16a25ee7cf3dbb6ee4b5a9fe)
reproduce (this is a W=1 build):
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # https://github.com/nbd168/wireless/commit/48469214f50cda8765f3800360997f06886eb331
        git remote add nbd168-wireless https://github.com/nbd168/wireless
        git fetch --no-tags nbd168-wireless mt76
        git checkout 48469214f50cda8765f3800360997f06886eb331
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=i386 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@...el.com>

All warnings (new ones prefixed by >>):

>> drivers/net/wireless/mediatek/mt76/mt7915/mcu.c:2105:3: warning: variable 'nrates' is uninitialized when used here [-Wuninitialized]
                   __sta_phy_bitrate_mask_check(he_mcs, he_gi, 1);
                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/net/wireless/mediatek/mt76/mt7915/mcu.c:2100:4: note: expanded from macro '__sta_phy_bitrate_mask_check'
                           nrates += hweight16(mask->control[band]._mcs[i]);       \
                           ^~~~~~
   drivers/net/wireless/mediatek/mt76/mt7915/mcu.c:2089:17: note: initialize the variable 'nrates' to silence this warning
           int ret, nrates;
                          ^
                           = 0
   1 warning generated.


vim +/nrates +2105 drivers/net/wireless/mediatek/mt76/mt7915/mcu.c

  2078	
  2079	static int
  2080	mt7915_mcu_add_rate_ctrl_fixed(struct mt7915_dev *dev,
  2081				       struct ieee80211_vif *vif,
  2082				       struct ieee80211_sta *sta)
  2083	{
  2084		struct mt7915_vif *mvif = (struct mt7915_vif *)vif->drv_priv;
  2085		struct cfg80211_chan_def *chandef = &mvif->phy->mt76->chandef;
  2086		struct cfg80211_bitrate_mask *mask = &mvif->bitrate_mask;
  2087		enum nl80211_band band = chandef->chan->band;
  2088		struct sta_phy phy = {};
  2089		int ret, nrates;
  2090	
  2091	#define __sta_phy_bitrate_mask_check(_mcs, _gi, _he)				\
  2092		do {									\
  2093			u8 i, gi = mask->control[band]._gi;				\
  2094			gi = (_he) ? gi : gi == NL80211_TXRATE_FORCE_SGI;		\
  2095			for (i = 0; i <= sta->bandwidth; i++) {				\
  2096				phy.sgi |= gi << (i << (_he));				\
  2097				phy.he_ltf |= mask->control[band].he_ltf << (i << (_he));\
  2098			}								\
  2099			for (i = 0; i < ARRAY_SIZE(mask->control[band]._mcs); i++) 	\
  2100				nrates += hweight16(mask->control[band]._mcs[i]);  	\
  2101			phy.mcs = ffs(mask->control[band]._mcs[0]) - 1;			\
  2102		} while (0)
  2103	
  2104		if (sta->he_cap.has_he) {
> 2105			__sta_phy_bitrate_mask_check(he_mcs, he_gi, 1);
  2106		} else if (sta->vht_cap.vht_supported) {
  2107			__sta_phy_bitrate_mask_check(vht_mcs, gi, 0);
  2108		} else if (sta->ht_cap.ht_supported) {
  2109			__sta_phy_bitrate_mask_check(ht_mcs, gi, 0);
  2110		} else {
  2111			nrates = hweight32(mask->control[band].legacy);
  2112			phy.mcs = ffs(mask->control[band].legacy) - 1;
  2113		}
  2114	#undef __sta_phy_bitrate_mask_check
  2115	
  2116		/* fall back to auto rate control */
  2117		if (mask->control[band].gi == NL80211_TXRATE_DEFAULT_GI &&
  2118		    mask->control[band].he_gi == GENMASK(7, 0) &&
  2119		    mask->control[band].he_ltf == GENMASK(7, 0) &&
  2120		    nrates != 1)
  2121			return 0;
  2122	
  2123		/* fixed single rate */
  2124		if (nrates == 1) {
  2125			ret = mt7915_mcu_set_fixed_rate_ctrl(dev, vif, sta, &phy,
  2126							     RATE_PARAM_FIXED_MCS);
  2127			if (ret)
  2128				return ret;
  2129		}
  2130	
  2131		/* fixed GI */
  2132		if (mask->control[band].gi != NL80211_TXRATE_DEFAULT_GI ||
  2133		    mask->control[band].he_gi != GENMASK(7, 0)) {
  2134			struct mt7915_sta *msta = (struct mt7915_sta *)sta->drv_priv;
  2135			u32 addr;
  2136	
  2137			/* firmware updates only TXCMD but doesn't take WTBL into
  2138			 * account, so driver should update here to reflect the
  2139			 * actual txrate hardware sends out.
  2140			 */
  2141			addr = mt7915_mac_wtbl_lmac_addr(dev, msta->wcid.idx, 7);
  2142			if (sta->he_cap.has_he)
  2143				mt76_rmw_field(dev, addr, GENMASK(31, 24), phy.sgi);
  2144			else
  2145				mt76_rmw_field(dev, addr, GENMASK(15, 12), phy.sgi);
  2146	
  2147			ret = mt7915_mcu_set_fixed_rate_ctrl(dev, vif, sta, &phy,
  2148							     RATE_PARAM_FIXED_GI);
  2149			if (ret)
  2150				return ret;
  2151		}
  2152	
  2153		/* fixed HE_LTF */
  2154		if (mask->control[band].he_ltf != GENMASK(7, 0)) {
  2155			ret = mt7915_mcu_set_fixed_rate_ctrl(dev, vif, sta, &phy,
  2156							     RATE_PARAM_FIXED_HE_LTF);
  2157			if (ret)
  2158				return ret;
  2159		}
  2160	
  2161		return 0;
  2162	}
  2163	

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org

Download attachment ".config.gz" of type "application/gzip" (41460 bytes)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ