[ath:ath12k-mlo-qcn9274 /81] drivers/net/wireless/ath/ath12k/mac.c:4304 ath12k_mac_op_set_key() error: uninitialized symbol 'ret'.
Dan Carpenter
dan.carpenter at linaro.org
Wed Oct 9 04:09:53 PDT 2024
tree: https://git.kernel.org/pub/scm/linux/kernel/git/ath/ath.git ath12k-mlo-qcn9274
head: 7435d14d41d5d479a5e6a8a2cd4efdac9d928823
commit: 573de29145bf929c428f9e2dc55ad3f5f3da8453 [/81] wifi: ath12k: modify ath12k_mac_op_set_key for MLO
config: csky-randconfig-r072-20241008 (https://download.01.org/0day-ci/archive/20241009/202410090311.SK1SO5GL-lkp@intel.com/config)
compiler: csky-linux-gcc (GCC) 14.1.0
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp at intel.com>
| Reported-by: Dan Carpenter <dan.carpenter at linaro.org>
| Closes: https://lore.kernel.org/r/202410090311.SK1SO5GL-lkp@intel.com/
New smatch warnings:
drivers/net/wireless/ath/ath12k/mac.c:4304 ath12k_mac_op_set_key() error: uninitialized symbol 'ret'.
vim +/ret +4304 drivers/net/wireless/ath/ath12k/mac.c
b5068bc9180d06 Sriram R 2024-04-09 4222 static int ath12k_mac_op_set_key(struct ieee80211_hw *hw, enum set_key_cmd cmd,
b5068bc9180d06 Sriram R 2024-04-09 4223 struct ieee80211_vif *vif, struct ieee80211_sta *sta,
b5068bc9180d06 Sriram R 2024-04-09 4224 struct ieee80211_key_conf *key)
b5068bc9180d06 Sriram R 2024-04-09 4225 {
18333c4baa4d72 Sriram R 2024-01-27 4226 struct ath12k_vif *ahvif = ath12k_vif_to_ahvif(vif);
18333c4baa4d72 Sriram R 2024-01-27 4227 struct ath12k_link_vif *arvif;
611aacdb3540ff Sriram R 2024-04-14 4228 struct ath12k_link_sta *arsta = NULL;
b5068bc9180d06 Sriram R 2024-04-09 4229 struct ath12k_vif_cache *cache;
611aacdb3540ff Sriram R 2024-04-14 4230 struct ath12k_sta *ahsta;
573de29145bf92 Rameshkumar Sundaram 2024-08-09 4231 unsigned long links;
573de29145bf92 Rameshkumar Sundaram 2024-08-09 4232 u8 link_id;
b5068bc9180d06 Sriram R 2024-04-09 4233 int ret;
b5068bc9180d06 Sriram R 2024-04-09 4234
d4243fd891671d Kalle Valo 2024-09-25 4235 lockdep_assert_wiphy(hw->wiphy);
d4243fd891671d Kalle Valo 2024-09-25 4236
b5068bc9180d06 Sriram R 2024-04-09 4237 /* BIP needs to be done in software */
b5068bc9180d06 Sriram R 2024-04-09 4238 if (key->cipher == WLAN_CIPHER_SUITE_AES_CMAC ||
b5068bc9180d06 Sriram R 2024-04-09 4239 key->cipher == WLAN_CIPHER_SUITE_BIP_GMAC_128 ||
b5068bc9180d06 Sriram R 2024-04-09 4240 key->cipher == WLAN_CIPHER_SUITE_BIP_GMAC_256 ||
18333c4baa4d72 Sriram R 2024-01-27 4241 key->cipher == WLAN_CIPHER_SUITE_BIP_CMAC_256) {
b5068bc9180d06 Sriram R 2024-04-09 4242 return 1;
18333c4baa4d72 Sriram R 2024-01-27 4243 }
b5068bc9180d06 Sriram R 2024-04-09 4244
b5068bc9180d06 Sriram R 2024-04-09 4245 if (key->keyidx > WMI_MAX_KEY_INDEX)
b5068bc9180d06 Sriram R 2024-04-09 4246 return -ENOSPC;
b5068bc9180d06 Sriram R 2024-04-09 4247
b5068bc9180d06 Sriram R 2024-04-09 4248 if (sta) {
573de29145bf92 Rameshkumar Sundaram 2024-08-09 4249 ahsta = ath12k_sta_to_ahsta(sta);
573de29145bf92 Rameshkumar Sundaram 2024-08-09 4250 /* For an ML STA Pairwise key is same for all associated link Stations,
573de29145bf92 Rameshkumar Sundaram 2024-08-09 4251 * hence do set key for all link STAs which are active.
573de29145bf92 Rameshkumar Sundaram 2024-08-09 4252 */
573de29145bf92 Rameshkumar Sundaram 2024-08-09 4253 if (sta->mlo) {
573de29145bf92 Rameshkumar Sundaram 2024-08-09 4254 links = ahsta->links_map;
573de29145bf92 Rameshkumar Sundaram 2024-08-09 4255 for_each_set_bit(link_id, &links, IEEE80211_MLD_MAX_NUM_LINKS) {
573de29145bf92 Rameshkumar Sundaram 2024-08-09 4256 arvif = wiphy_dereference(hw->wiphy, ahvif->link[link_id]);
573de29145bf92 Rameshkumar Sundaram 2024-08-09 4257 arsta = wiphy_dereference(hw->wiphy, ahsta->link[link_id]);
573de29145bf92 Rameshkumar Sundaram 2024-08-09 4258
573de29145bf92 Rameshkumar Sundaram 2024-08-09 4259 if (WARN_ON(!arvif || !arsta))
573de29145bf92 Rameshkumar Sundaram 2024-08-09 4260 /* arvif and arsta are expected to be valid when
573de29145bf92 Rameshkumar Sundaram 2024-08-09 4261 * STA is present.
573de29145bf92 Rameshkumar Sundaram 2024-08-09 4262 */
573de29145bf92 Rameshkumar Sundaram 2024-08-09 4263 continue;
Is it possible that there are no set bits or that we always hit this continue?
573de29145bf92 Rameshkumar Sundaram 2024-08-09 4264
573de29145bf92 Rameshkumar Sundaram 2024-08-09 4265 ret = ath12k_mac_set_key(arvif->ar, cmd, arvif,
573de29145bf92 Rameshkumar Sundaram 2024-08-09 4266 arsta, key);
573de29145bf92 Rameshkumar Sundaram 2024-08-09 4267 if (ret)
573de29145bf92 Rameshkumar Sundaram 2024-08-09 4268 break;
573de29145bf92 Rameshkumar Sundaram 2024-08-09 4269 }
573de29145bf92 Rameshkumar Sundaram 2024-08-09 4270 } else {
573de29145bf92 Rameshkumar Sundaram 2024-08-09 4271 arsta = &ahsta->deflink;
573de29145bf92 Rameshkumar Sundaram 2024-08-09 4272 arvif = arsta->arvif;
573de29145bf92 Rameshkumar Sundaram 2024-08-09 4273 if (WARN_ON(!arvif)) {
573de29145bf92 Rameshkumar Sundaram 2024-08-09 4274 ret = -EINVAL;
573de29145bf92 Rameshkumar Sundaram 2024-08-09 4275 goto out;
b5068bc9180d06 Sriram R 2024-04-09 4276 }
b5068bc9180d06 Sriram R 2024-04-09 4277
573de29145bf92 Rameshkumar Sundaram 2024-08-09 4278 ret = ath12k_mac_set_key(arvif->ar, cmd, arvif, arsta, key);
573de29145bf92 Rameshkumar Sundaram 2024-08-09 4279 }
573de29145bf92 Rameshkumar Sundaram 2024-08-09 4280 } else {
573de29145bf92 Rameshkumar Sundaram 2024-08-09 4281 if (key->link_id >= 0 && key->link_id < IEEE80211_MLD_MAX_NUM_LINKS) {
573de29145bf92 Rameshkumar Sundaram 2024-08-09 4282 link_id = key->link_id;
573de29145bf92 Rameshkumar Sundaram 2024-08-09 4283 arvif = wiphy_dereference(hw->wiphy, ahvif->link[link_id]);
573de29145bf92 Rameshkumar Sundaram 2024-08-09 4284 } else {
573de29145bf92 Rameshkumar Sundaram 2024-08-09 4285 link_id = 0;
573de29145bf92 Rameshkumar Sundaram 2024-08-09 4286 arvif = &ahvif->deflink;
573de29145bf92 Rameshkumar Sundaram 2024-08-09 4287 }
573de29145bf92 Rameshkumar Sundaram 2024-08-09 4288
573de29145bf92 Rameshkumar Sundaram 2024-08-09 4289 if (!arvif || !arvif->is_created) {
573de29145bf92 Rameshkumar Sundaram 2024-08-09 4290 cache = ath12k_ahvif_get_link_cache(ahvif, link_id);
b5068bc9180d06 Sriram R 2024-04-09 4291 if (!cache)
b5068bc9180d06 Sriram R 2024-04-09 4292 return -ENOSPC;
18333c4baa4d72 Sriram R 2024-01-27 4293
573de29145bf92 Rameshkumar Sundaram 2024-08-09 4294 ret = ath12k_mac_update_key_cache(cache, cmd, sta, key);
18333c4baa4d72 Sriram R 2024-01-27 4295
573de29145bf92 Rameshkumar Sundaram 2024-08-09 4296 return ret;
b5068bc9180d06 Sriram R 2024-04-09 4297 }
b5068bc9180d06 Sriram R 2024-04-09 4298
573de29145bf92 Rameshkumar Sundaram 2024-08-09 4299 ret = ath12k_mac_set_key(arvif->ar, cmd, arvif, NULL, key);
611aacdb3540ff Sriram R 2024-04-14 4300 }
611aacdb3540ff Sriram R 2024-04-14 4301
573de29145bf92 Rameshkumar Sundaram 2024-08-09 4302 out:
18333c4baa4d72 Sriram R 2024-01-27 4303
d889913205cf7e Kalle Valo 2022-11-28 @4304 return ret;
If so then ret is uninitialized
d889913205cf7e Kalle Valo 2022-11-28 4305 }
d889913205cf7e Kalle Valo 2022-11-28 4306
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
More information about the ath12k
mailing list