Search Linux Wireless

Re: [PATCH wireless-next v2] wifi: brcmfmac: fix EXTSAE WPA3 connection failure due to AUTH TX failure

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

 



Hi Gokul,

kernel test robot noticed the following build warnings:

[auto build test WARNING on wireless-next/main]
[also build test WARNING on wireless/main linus/master v6.16-rc4 next-20250704]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url:    https://github.com/intel-lab-lkp/linux/commits/Gokul-Sivakumar/wifi-brcmfmac-fix-EXTSAE-WPA3-connection-failure-due-to-AUTH-TX-failure/20250703-215456
base:   https://git.kernel.org/pub/scm/linux/kernel/git/wireless/wireless-next.git main
patch link:    https://lore.kernel.org/r/20250703135307.7433-1-gokulkumar.sivakumar%40infineon.com
patch subject: [PATCH wireless-next v2] wifi: brcmfmac: fix EXTSAE WPA3 connection failure due to AUTH TX failure
config: sh-randconfig-r121-20250704 (https://download.01.org/0day-ci/archive/20250706/202507062346.dYsnIxdD-lkp@xxxxxxxxx/config)
compiler: sh4-linux-gcc (GCC) 15.1.0
reproduce: (https://download.01.org/0day-ci/archive/20250706/202507062346.dYsnIxdD-lkp@xxxxxxxxx/reproduce)

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@xxxxxxxxx>
| Closes: https://lore.kernel.org/oe-kbuild-all/202507062346.dYsnIxdD-lkp@xxxxxxxxx/

sparse warnings: (new ones prefixed by >>)
>> drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c:5620:52: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __le32 [usertype] channel @@     got signed int [addressable] [usertype] hw_ch @@
   drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c:5620:52: sparse:     expected restricted __le32 [usertype] channel
   drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c:5620:52: sparse:     got signed int [addressable] [usertype] hw_ch
--
>> drivers/net/wireless/broadcom/brcm80211/brcmfmac/cyw/core.c:156:44: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __le16 [usertype] channel @@     got signed int [addressable] [usertype] hw_ch @@
   drivers/net/wireless/broadcom/brcm80211/brcmfmac/cyw/core.c:156:44: sparse:     expected restricted __le16 [usertype] channel
   drivers/net/wireless/broadcom/brcm80211/brcmfmac/cyw/core.c:156:44: sparse:     got signed int [addressable] [usertype] hw_ch

vim +5620 drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c

  5528	
  5529	
  5530	int
  5531	brcmf_cfg80211_mgmt_tx(struct wiphy *wiphy, struct wireless_dev *wdev,
  5532			       struct cfg80211_mgmt_tx_params *params, u64 *cookie)
  5533	{
  5534		struct brcmf_cfg80211_info *cfg = wiphy_to_cfg(wiphy);
  5535		struct ieee80211_channel *chan = params->chan;
  5536		struct brcmf_pub *drvr = cfg->pub;
  5537		const u8 *buf = params->buf;
  5538		size_t len = params->len;
  5539		const struct ieee80211_mgmt *mgmt;
  5540		struct brcmf_cfg80211_vif *vif;
  5541		s32 err = 0;
  5542		s32 ie_offset;
  5543		s32 ie_len;
  5544		struct brcmf_fil_action_frame_le *action_frame;
  5545		struct brcmf_fil_af_params_le *af_params;
  5546		bool ack;
  5547		s32 ch, hw_ch;
  5548	
  5549		brcmf_dbg(TRACE, "Enter\n");
  5550	
  5551		*cookie = 0;
  5552	
  5553		mgmt = (const struct ieee80211_mgmt *)buf;
  5554	
  5555		if (!ieee80211_is_mgmt(mgmt->frame_control)) {
  5556			bphy_err(drvr, "Driver only allows MGMT packet type\n");
  5557			return -EPERM;
  5558		}
  5559	
  5560		vif = container_of(wdev, struct brcmf_cfg80211_vif, wdev);
  5561	
  5562		if (ieee80211_is_probe_resp(mgmt->frame_control)) {
  5563			/* Right now the only reason to get a probe response */
  5564			/* is for p2p listen response or for p2p GO from     */
  5565			/* wpa_supplicant. Unfortunately the probe is send   */
  5566			/* on primary ndev, while dongle wants it on the p2p */
  5567			/* vif. Since this is only reason for a probe        */
  5568			/* response to be sent, the vif is taken from cfg.   */
  5569			/* If ever desired to send proberesp for non p2p     */
  5570			/* response then data should be checked for          */
  5571			/* "DIRECT-". Note in future supplicant will take    */
  5572			/* dedicated p2p wdev to do this and then this 'hack'*/
  5573			/* is not needed anymore.                            */
  5574			ie_offset =  DOT11_MGMT_HDR_LEN +
  5575				     DOT11_BCN_PRB_FIXED_LEN;
  5576			ie_len = len - ie_offset;
  5577			if (vif == cfg->p2p.bss_idx[P2PAPI_BSSCFG_PRIMARY].vif)
  5578				vif = cfg->p2p.bss_idx[P2PAPI_BSSCFG_DEVICE].vif;
  5579			err = brcmf_vif_set_mgmt_ie(vif,
  5580						    BRCMF_VNDR_IE_PRBRSP_FLAG,
  5581						    &buf[ie_offset],
  5582						    ie_len);
  5583			cfg80211_mgmt_tx_status(wdev, *cookie, buf, len, true,
  5584						GFP_KERNEL);
  5585		} else if (ieee80211_is_action(mgmt->frame_control)) {
  5586			if (len > BRCMF_FIL_ACTION_FRAME_SIZE + DOT11_MGMT_HDR_LEN) {
  5587				bphy_err(drvr, "invalid action frame length\n");
  5588				err = -EINVAL;
  5589				goto exit;
  5590			}
  5591			af_params = kzalloc(sizeof(*af_params), GFP_KERNEL);
  5592			if (af_params == NULL) {
  5593				bphy_err(drvr, "unable to allocate frame\n");
  5594				err = -ENOMEM;
  5595				goto exit;
  5596			}
  5597			action_frame = &af_params->action_frame;
  5598			/* Add the packet Id */
  5599			action_frame->packet_id = cpu_to_le32(*cookie);
  5600			/* Add BSSID */
  5601			memcpy(&action_frame->da[0], &mgmt->da[0], ETH_ALEN);
  5602			memcpy(&af_params->bssid[0], &mgmt->bssid[0], ETH_ALEN);
  5603			/* Add the length exepted for 802.11 header  */
  5604			action_frame->len = cpu_to_le16(len - DOT11_MGMT_HDR_LEN);
  5605			/* Add the channel. Use the one specified as parameter if any or
  5606			 * the current one (got from the firmware) otherwise
  5607			 */
  5608			if (chan) {
  5609				ch = ieee80211_frequency_to_channel(chan->center_freq);
  5610				af_params->channel = cpu_to_le32(ch);
  5611			} else {
  5612				err = brcmf_fil_cmd_int_get(vif->ifp,
  5613							    BRCMF_C_GET_CHANNEL,
  5614							    &hw_ch);
  5615				if (err) {
  5616					bphy_err(drvr,
  5617						 "unable to get current hw channel\n");
  5618					goto free;
  5619				} else {
> 5620					af_params->channel = hw_ch;
  5621				}
  5622			}
  5623	
  5624			af_params->dwell_time = cpu_to_le32(params->wait);
  5625			memcpy(action_frame->data, &buf[DOT11_MGMT_HDR_LEN],
  5626			       le16_to_cpu(action_frame->len));
  5627	
  5628			brcmf_dbg(TRACE, "Action frame, cookie=%lld, len=%d, channel=%d\n",
  5629				  *cookie, le16_to_cpu(action_frame->len),
  5630				  le32_to_cpu(af_params->channel));
  5631	
  5632			ack = brcmf_p2p_send_action_frame(cfg, cfg_to_ndev(cfg),
  5633							  af_params);
  5634	
  5635			cfg80211_mgmt_tx_status(wdev, *cookie, buf, len, ack,
  5636						GFP_KERNEL);
  5637	free:
  5638			kfree(af_params);
  5639		} else {
  5640			brcmf_dbg(TRACE, "Unhandled, fc=%04x!!\n", mgmt->frame_control);
  5641			brcmf_dbg_hex_dump(true, buf, len, "payload, len=%zu\n", len);
  5642		}
  5643	
  5644	exit:
  5645		return err;
  5646	}
  5647	BRCMF_EXPORT_SYMBOL_GPL(brcmf_cfg80211_mgmt_tx);
  5648	

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki




[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Wireless Personal Area Network]     [Linux Bluetooth]     [Wireless Regulations]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite Hiking]     [MIPS Linux]     [ARM Linux]     [Linux RAID]

  Powered by Linux