All of lore.kernel.org
 help / color / mirror / Atom feed
From: Kalle Valo <kvalo@kernel.org>
To: Dan Carpenter <dan.carpenter@linaro.org>
Cc: oe-kbuild@lists.linux.dev,
	 Rameshkumar Sundaram <quic_ramess@quicinc.com>,
	 lkp@intel.com,  oe-kbuild-all@lists.linux.dev,
	Jeff Johnson <jjohnson@kernel.org>,
	 ath12k@lists.infradead.org
Subject: Re: [ath:ath12k-mlo-qcn9274 /81] drivers/net/wireless/ath/ath12k/mac.c:4304 ath12k_mac_op_set_key() error: uninitialized symbol 'ret'.
Date: Mon, 04 Nov 2024 22:18:07 +0200	[thread overview]
Message-ID: <87a5ee7ny8.fsf@kernel.org> (raw)
In-Reply-To: <7e7afd00-ad84-4744-8d94-416bab7e7dd9@stanley.mountain> (Dan Carpenter's message of "Wed, 9 Oct 2024 14:09:53 +0300")

Dan Carpenter <dan.carpenter@linaro.org> writes:

> 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@intel.com>
> | Reported-by: Dan Carpenter <dan.carpenter@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?

Actually I'm not fully sure if links_map can be zero but I would not
assume so.

> 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

Thanks for the report, I fixed it like this in ath12k-mlo branch (not
yet submitted for review):

https://git.kernel.org/pub/scm/linux/kernel/git/ath/ath.git/commit/?h=ath12k-mlo&id=1ed8ae547f604b6c6176aeadd98bd192c9031066

-- 
https://patchwork.kernel.org/project/linux-wireless/list/

https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches


  reply	other threads:[~2024-11-04 20:18 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-10-09 11:09 [ath:ath12k-mlo-qcn9274 /81] drivers/net/wireless/ath/ath12k/mac.c:4304 ath12k_mac_op_set_key() error: uninitialized symbol 'ret' Dan Carpenter
2024-11-04 20:18 ` Kalle Valo [this message]
  -- strict thread matches above, loose matches on Subject: below --
2024-10-08 19:49 kernel test robot

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87a5ee7ny8.fsf@kernel.org \
    --to=kvalo@kernel.org \
    --cc=ath12k@lists.infradead.org \
    --cc=dan.carpenter@linaro.org \
    --cc=jjohnson@kernel.org \
    --cc=lkp@intel.com \
    --cc=oe-kbuild-all@lists.linux.dev \
    --cc=oe-kbuild@lists.linux.dev \
    --cc=quic_ramess@quicinc.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.