All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: Benjamin Li <benl@squareup.com>, Kalle Valo <kvalo@codeaurora.org>
Cc: kbuild-all@lists.01.org,
	Bryan O'Donoghue <bryan.odonoghue@linaro.org>,
	Loic Poulain <loic.poulain@linaro.org>,
	linux-arm-msm@vger.kernel.org, Benjamin Li <benl@squareup.com>,
	Jakub Kicinski <kuba@kernel.org>,
	wcn36xx@lists.infradead.org, linux-wireless@vger.kernel.org,
	netdev@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH 2/2] wcn36xx: fix RX BD rate mapping for 5GHz legacy rates
Date: Sat, 30 Oct 2021 02:30:34 +0800	[thread overview]
Message-ID: <202110300250.HTfMmjEm-lkp@intel.com> (raw)
In-Reply-To: <20211028223131.897548-2-benl@squareup.com>

[-- Attachment #1: Type: text/plain, Size: 12838 bytes --]

Hi Benjamin,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on kvalo-wireless-drivers-next/master]
[also build test WARNING on kvalo-ath/ath-next kvalo-wireless-drivers/master v5.15-rc7 next-20211029]
[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]

url:    https://github.com/0day-ci/linux/commits/Benjamin-Li/wcn36xx-populate-band-before-determining-rate-on-RX/20211029-064020
base:   https://git.kernel.org/pub/scm/linux/kernel/git/kvalo/wireless-drivers-next.git master
config: arm64-defconfig (attached as .config)
compiler: aarch64-linux-gcc (GCC) 11.2.0
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/0day-ci/linux/commit/4713a80ea03fc60eaa4de959a3ec73154493f35a
        git remote add linux-review https://github.com/0day-ci/linux
        git fetch --no-tags linux-review Benjamin-Li/wcn36xx-populate-band-before-determining-rate-on-RX/20211029-064020
        git checkout 4713a80ea03fc60eaa4de959a3ec73154493f35a
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross ARCH=arm64 

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

All warnings (new ones prefixed by >>):

   drivers/net/wireless/ath/wcn36xx/txrx.c: In function 'wcn36xx_rx_skb':
>> drivers/net/wireless/ath/wcn36xx/txrx.c:275:42: warning: variable 'sband' set but not used [-Wunused-but-set-variable]
     275 |         struct ieee80211_supported_band *sband;
         |                                          ^~~~~


vim +/sband +275 drivers/net/wireless/ath/wcn36xx/txrx.c

a224b47ab36d7d Loic Poulain     2021-10-25  268  
8e84c25821698b Eugene Krasnikov 2013-10-08  269  int wcn36xx_rx_skb(struct wcn36xx *wcn, struct sk_buff *skb)
8e84c25821698b Eugene Krasnikov 2013-10-08  270  {
8e84c25821698b Eugene Krasnikov 2013-10-08  271  	struct ieee80211_rx_status status;
0aa90483f23e79 Loic Poulain     2020-06-15  272  	const struct wcn36xx_rate *rate;
8e84c25821698b Eugene Krasnikov 2013-10-08  273  	struct ieee80211_hdr *hdr;
8e84c25821698b Eugene Krasnikov 2013-10-08  274  	struct wcn36xx_rx_bd *bd;
6ea131acea9802 Loic Poulain     2020-08-29 @275  	struct ieee80211_supported_band *sband;
8e84c25821698b Eugene Krasnikov 2013-10-08  276  	u16 fc, sn;
8e84c25821698b Eugene Krasnikov 2013-10-08  277  
8e84c25821698b Eugene Krasnikov 2013-10-08  278  	/*
8e84c25821698b Eugene Krasnikov 2013-10-08  279  	 * All fields must be 0, otherwise it can lead to
8e84c25821698b Eugene Krasnikov 2013-10-08  280  	 * unexpected consequences.
8e84c25821698b Eugene Krasnikov 2013-10-08  281  	 */
8e84c25821698b Eugene Krasnikov 2013-10-08  282  	memset(&status, 0, sizeof(status));
8e84c25821698b Eugene Krasnikov 2013-10-08  283  
8e84c25821698b Eugene Krasnikov 2013-10-08  284  	bd = (struct wcn36xx_rx_bd *)skb->data;
8e84c25821698b Eugene Krasnikov 2013-10-08  285  	buff_to_be((u32 *)bd, sizeof(*bd)/sizeof(u32));
8e84c25821698b Eugene Krasnikov 2013-10-08  286  	wcn36xx_dbg_dump(WCN36XX_DBG_RX_DUMP,
8e84c25821698b Eugene Krasnikov 2013-10-08  287  			 "BD   <<< ", (char *)bd,
8e84c25821698b Eugene Krasnikov 2013-10-08  288  			 sizeof(struct wcn36xx_rx_bd));
8e84c25821698b Eugene Krasnikov 2013-10-08  289  
a224b47ab36d7d Loic Poulain     2021-10-25  290  	if (bd->pdu.mpdu_data_off <= bd->pdu.mpdu_header_off ||
a224b47ab36d7d Loic Poulain     2021-10-25  291  	    bd->pdu.mpdu_len < bd->pdu.mpdu_header_len)
a224b47ab36d7d Loic Poulain     2021-10-25  292  		goto drop;
a224b47ab36d7d Loic Poulain     2021-10-25  293  
a224b47ab36d7d Loic Poulain     2021-10-25  294  	if (bd->asf && !bd->esf) { /* chained A-MSDU chunks */
a224b47ab36d7d Loic Poulain     2021-10-25  295  		/* Sanity check */
a224b47ab36d7d Loic Poulain     2021-10-25  296  		if (bd->pdu.mpdu_data_off + bd->pdu.mpdu_len > WCN36XX_PKT_SIZE)
a224b47ab36d7d Loic Poulain     2021-10-25  297  			goto drop;
a224b47ab36d7d Loic Poulain     2021-10-25  298  
a224b47ab36d7d Loic Poulain     2021-10-25  299  		skb_put(skb, bd->pdu.mpdu_data_off + bd->pdu.mpdu_len);
a224b47ab36d7d Loic Poulain     2021-10-25  300  		skb_pull(skb, bd->pdu.mpdu_data_off);
a224b47ab36d7d Loic Poulain     2021-10-25  301  
a224b47ab36d7d Loic Poulain     2021-10-25  302  		/* Only set status for first chained BD (with mac header) */
a224b47ab36d7d Loic Poulain     2021-10-25  303  		goto done;
a224b47ab36d7d Loic Poulain     2021-10-25  304  	}
a224b47ab36d7d Loic Poulain     2021-10-25  305  
a224b47ab36d7d Loic Poulain     2021-10-25  306  	if (bd->pdu.mpdu_header_off < sizeof(*bd) ||
a224b47ab36d7d Loic Poulain     2021-10-25  307  	    bd->pdu.mpdu_header_off + bd->pdu.mpdu_len > WCN36XX_PKT_SIZE)
a224b47ab36d7d Loic Poulain     2021-10-25  308  		goto drop;
a224b47ab36d7d Loic Poulain     2021-10-25  309  
8e84c25821698b Eugene Krasnikov 2013-10-08  310  	skb_put(skb, bd->pdu.mpdu_header_off + bd->pdu.mpdu_len);
8e84c25821698b Eugene Krasnikov 2013-10-08  311  	skb_pull(skb, bd->pdu.mpdu_header_off);
8e84c25821698b Eugene Krasnikov 2013-10-08  312  
886039036c2004 Bjorn Andersson  2017-01-11  313  	hdr = (struct ieee80211_hdr *) skb->data;
886039036c2004 Bjorn Andersson  2017-01-11  314  	fc = __le16_to_cpu(hdr->frame_control);
886039036c2004 Bjorn Andersson  2017-01-11  315  	sn = IEEE80211_SEQ_TO_SN(__le16_to_cpu(hdr->seq_ctrl));
886039036c2004 Bjorn Andersson  2017-01-11  316  
886039036c2004 Bjorn Andersson  2017-01-11  317  	status.mactime = 10;
8e84c25821698b Eugene Krasnikov 2013-10-08  318  	status.signal = -get_rssi0(bd);
8e84c25821698b Eugene Krasnikov 2013-10-08  319  	status.antenna = 1;
8e84c25821698b Eugene Krasnikov 2013-10-08  320  	status.flag = 0;
8e84c25821698b Eugene Krasnikov 2013-10-08  321  	status.rx_flags = 0;
8e84c25821698b Eugene Krasnikov 2013-10-08  322  	status.flag |= RX_FLAG_IV_STRIPPED |
8e84c25821698b Eugene Krasnikov 2013-10-08  323  		       RX_FLAG_MMIC_STRIPPED |
8e84c25821698b Eugene Krasnikov 2013-10-08  324  		       RX_FLAG_DECRYPTED;
8e84c25821698b Eugene Krasnikov 2013-10-08  325  
7fdd69c5af2160 Johannes Berg    2017-04-26  326  	wcn36xx_dbg(WCN36XX_DBG_RX, "status.flags=%x\n", status.flag);
8e84c25821698b Eugene Krasnikov 2013-10-08  327  
cec59cdeb543bd Benjamin Li      2021-10-28  328  	if (bd->scan_learn) {
cec59cdeb543bd Benjamin Li      2021-10-28  329  		/* If packet originate from hardware scanning, extract the
cec59cdeb543bd Benjamin Li      2021-10-28  330  		 * band/channel from bd descriptor.
cec59cdeb543bd Benjamin Li      2021-10-28  331  		 */
cec59cdeb543bd Benjamin Li      2021-10-28  332  		u8 hwch = (bd->reserved0 << 4) + bd->rx_ch;
cec59cdeb543bd Benjamin Li      2021-10-28  333  
cec59cdeb543bd Benjamin Li      2021-10-28  334  		if (bd->rf_band != 1 && hwch <= sizeof(ab_rx_ch_map) && hwch >= 1) {
cec59cdeb543bd Benjamin Li      2021-10-28  335  			status.band = NL80211_BAND_5GHZ;
cec59cdeb543bd Benjamin Li      2021-10-28  336  			status.freq = ieee80211_channel_to_frequency(ab_rx_ch_map[hwch - 1],
cec59cdeb543bd Benjamin Li      2021-10-28  337  								     status.band);
cec59cdeb543bd Benjamin Li      2021-10-28  338  		} else {
cec59cdeb543bd Benjamin Li      2021-10-28  339  			status.band = NL80211_BAND_2GHZ;
cec59cdeb543bd Benjamin Li      2021-10-28  340  			status.freq = ieee80211_channel_to_frequency(hwch, status.band);
cec59cdeb543bd Benjamin Li      2021-10-28  341  		}
cec59cdeb543bd Benjamin Li      2021-10-28  342  	} else {
cec59cdeb543bd Benjamin Li      2021-10-28  343  		status.band = WCN36XX_BAND(wcn);
cec59cdeb543bd Benjamin Li      2021-10-28  344  		status.freq = WCN36XX_CENTER_FREQ(wcn);
cec59cdeb543bd Benjamin Li      2021-10-28  345  	}
cec59cdeb543bd Benjamin Li      2021-10-28  346  
0aa90483f23e79 Loic Poulain     2020-06-15  347  	if (bd->rate_id < ARRAY_SIZE(wcn36xx_rate_table)) {
0aa90483f23e79 Loic Poulain     2020-06-15  348  		rate = &wcn36xx_rate_table[bd->rate_id];
0aa90483f23e79 Loic Poulain     2020-06-15  349  		status.encoding = rate->encoding;
0aa90483f23e79 Loic Poulain     2020-06-15  350  		status.enc_flags = rate->encoding_flags;
0aa90483f23e79 Loic Poulain     2020-06-15  351  		status.bw = rate->bw;
0aa90483f23e79 Loic Poulain     2020-06-15  352  		status.rate_idx = rate->mcs_or_legacy_index;
6ea131acea9802 Loic Poulain     2020-08-29  353  		sband = wcn->hw->wiphy->bands[status.band];
1af05d43b9bef4 Bryan O'Donoghue 2020-08-29  354  		status.nss = 1;
6ea131acea9802 Loic Poulain     2020-08-29  355  
6ea131acea9802 Loic Poulain     2020-08-29  356  		if (status.band == NL80211_BAND_5GHZ &&
4713a80ea03fc6 Benjamin Li      2021-10-28  357  		    status.encoding == RX_ENC_LEGACY) {
6ea131acea9802 Loic Poulain     2020-08-29  358  			/* no dsss rates in 5Ghz rates table */
6ea131acea9802 Loic Poulain     2020-08-29  359  			status.rate_idx -= 4;
6ea131acea9802 Loic Poulain     2020-08-29  360  		}
0aa90483f23e79 Loic Poulain     2020-06-15  361  	} else {
0aa90483f23e79 Loic Poulain     2020-06-15  362  		status.encoding = 0;
0aa90483f23e79 Loic Poulain     2020-06-15  363  		status.bw = 0;
0aa90483f23e79 Loic Poulain     2020-06-15  364  		status.enc_flags = 0;
0aa90483f23e79 Loic Poulain     2020-06-15  365  		status.rate_idx = 0;
0aa90483f23e79 Loic Poulain     2020-06-15  366  	}
0aa90483f23e79 Loic Poulain     2020-06-15  367  
8678fd31f2d3eb Loic Poulain     2021-08-26  368  	if (ieee80211_is_beacon(hdr->frame_control) ||
8678fd31f2d3eb Loic Poulain     2021-08-26  369  	    ieee80211_is_probe_resp(hdr->frame_control))
8678fd31f2d3eb Loic Poulain     2021-08-26  370  		status.boottime_ns = ktime_get_boottime_ns();
8678fd31f2d3eb Loic Poulain     2021-08-26  371  
8e84c25821698b Eugene Krasnikov 2013-10-08  372  	memcpy(IEEE80211_SKB_RXCB(skb), &status, sizeof(status));
8e84c25821698b Eugene Krasnikov 2013-10-08  373  
8e84c25821698b Eugene Krasnikov 2013-10-08  374  	if (ieee80211_is_beacon(hdr->frame_control)) {
8e84c25821698b Eugene Krasnikov 2013-10-08  375  		wcn36xx_dbg(WCN36XX_DBG_BEACON, "beacon skb %p len %d fc %04x sn %d\n",
8e84c25821698b Eugene Krasnikov 2013-10-08  376  			    skb, skb->len, fc, sn);
8e84c25821698b Eugene Krasnikov 2013-10-08  377  		wcn36xx_dbg_dump(WCN36XX_DBG_BEACON_DUMP, "SKB <<< ",
8e84c25821698b Eugene Krasnikov 2013-10-08  378  				 (char *)skb->data, skb->len);
8e84c25821698b Eugene Krasnikov 2013-10-08  379  	} else {
8e84c25821698b Eugene Krasnikov 2013-10-08  380  		wcn36xx_dbg(WCN36XX_DBG_RX, "rx skb %p len %d fc %04x sn %d\n",
8e84c25821698b Eugene Krasnikov 2013-10-08  381  			    skb, skb->len, fc, sn);
8e84c25821698b Eugene Krasnikov 2013-10-08  382  		wcn36xx_dbg_dump(WCN36XX_DBG_RX_DUMP, "SKB <<< ",
8e84c25821698b Eugene Krasnikov 2013-10-08  383  				 (char *)skb->data, skb->len);
8e84c25821698b Eugene Krasnikov 2013-10-08  384  	}
8e84c25821698b Eugene Krasnikov 2013-10-08  385  
a224b47ab36d7d Loic Poulain     2021-10-25  386  done:
a224b47ab36d7d Loic Poulain     2021-10-25  387  	/*  Chained AMSDU ? slow path */
a224b47ab36d7d Loic Poulain     2021-10-25  388  	if (unlikely(bd->asf && !(bd->lsf && bd->esf))) {
a224b47ab36d7d Loic Poulain     2021-10-25  389  		if (bd->esf && !skb_queue_empty(&wcn->amsdu)) {
a224b47ab36d7d Loic Poulain     2021-10-25  390  			wcn36xx_err("Discarding non complete chain");
a224b47ab36d7d Loic Poulain     2021-10-25  391  			__skb_queue_purge_irq(&wcn->amsdu);
a224b47ab36d7d Loic Poulain     2021-10-25  392  		}
a224b47ab36d7d Loic Poulain     2021-10-25  393  
a224b47ab36d7d Loic Poulain     2021-10-25  394  		__skb_queue_tail(&wcn->amsdu, skb);
a224b47ab36d7d Loic Poulain     2021-10-25  395  
a224b47ab36d7d Loic Poulain     2021-10-25  396  		if (!bd->lsf)
a224b47ab36d7d Loic Poulain     2021-10-25  397  			return 0; /* Not the last AMSDU, wait for more */
a224b47ab36d7d Loic Poulain     2021-10-25  398  
a224b47ab36d7d Loic Poulain     2021-10-25  399  		skb = wcn36xx_unchain_msdu(&wcn->amsdu);
a224b47ab36d7d Loic Poulain     2021-10-25  400  		if (!skb)
a224b47ab36d7d Loic Poulain     2021-10-25  401  			goto drop;
a224b47ab36d7d Loic Poulain     2021-10-25  402  	}
a224b47ab36d7d Loic Poulain     2021-10-25  403  
8e84c25821698b Eugene Krasnikov 2013-10-08  404  	ieee80211_rx_irqsafe(wcn->hw, skb);
8e84c25821698b Eugene Krasnikov 2013-10-08  405  
8e84c25821698b Eugene Krasnikov 2013-10-08  406  	return 0;
a224b47ab36d7d Loic Poulain     2021-10-25  407  

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

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 56422 bytes --]

WARNING: multiple messages have this Message-ID (diff)
From: kernel test robot <lkp@intel.com>
To: kbuild-all@lists.01.org
Subject: Re: [PATCH 2/2] wcn36xx: fix RX BD rate mapping for 5GHz legacy rates
Date: Sat, 30 Oct 2021 02:30:34 +0800	[thread overview]
Message-ID: <202110300250.HTfMmjEm-lkp@intel.com> (raw)
In-Reply-To: <20211028223131.897548-2-benl@squareup.com>

[-- Attachment #1: Type: text/plain, Size: 13021 bytes --]

Hi Benjamin,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on kvalo-wireless-drivers-next/master]
[also build test WARNING on kvalo-ath/ath-next kvalo-wireless-drivers/master v5.15-rc7 next-20211029]
[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]

url:    https://github.com/0day-ci/linux/commits/Benjamin-Li/wcn36xx-populate-band-before-determining-rate-on-RX/20211029-064020
base:   https://git.kernel.org/pub/scm/linux/kernel/git/kvalo/wireless-drivers-next.git master
config: arm64-defconfig (attached as .config)
compiler: aarch64-linux-gcc (GCC) 11.2.0
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/0day-ci/linux/commit/4713a80ea03fc60eaa4de959a3ec73154493f35a
        git remote add linux-review https://github.com/0day-ci/linux
        git fetch --no-tags linux-review Benjamin-Li/wcn36xx-populate-band-before-determining-rate-on-RX/20211029-064020
        git checkout 4713a80ea03fc60eaa4de959a3ec73154493f35a
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross ARCH=arm64 

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

All warnings (new ones prefixed by >>):

   drivers/net/wireless/ath/wcn36xx/txrx.c: In function 'wcn36xx_rx_skb':
>> drivers/net/wireless/ath/wcn36xx/txrx.c:275:42: warning: variable 'sband' set but not used [-Wunused-but-set-variable]
     275 |         struct ieee80211_supported_band *sband;
         |                                          ^~~~~


vim +/sband +275 drivers/net/wireless/ath/wcn36xx/txrx.c

a224b47ab36d7d Loic Poulain     2021-10-25  268  
8e84c25821698b Eugene Krasnikov 2013-10-08  269  int wcn36xx_rx_skb(struct wcn36xx *wcn, struct sk_buff *skb)
8e84c25821698b Eugene Krasnikov 2013-10-08  270  {
8e84c25821698b Eugene Krasnikov 2013-10-08  271  	struct ieee80211_rx_status status;
0aa90483f23e79 Loic Poulain     2020-06-15  272  	const struct wcn36xx_rate *rate;
8e84c25821698b Eugene Krasnikov 2013-10-08  273  	struct ieee80211_hdr *hdr;
8e84c25821698b Eugene Krasnikov 2013-10-08  274  	struct wcn36xx_rx_bd *bd;
6ea131acea9802 Loic Poulain     2020-08-29 @275  	struct ieee80211_supported_band *sband;
8e84c25821698b Eugene Krasnikov 2013-10-08  276  	u16 fc, sn;
8e84c25821698b Eugene Krasnikov 2013-10-08  277  
8e84c25821698b Eugene Krasnikov 2013-10-08  278  	/*
8e84c25821698b Eugene Krasnikov 2013-10-08  279  	 * All fields must be 0, otherwise it can lead to
8e84c25821698b Eugene Krasnikov 2013-10-08  280  	 * unexpected consequences.
8e84c25821698b Eugene Krasnikov 2013-10-08  281  	 */
8e84c25821698b Eugene Krasnikov 2013-10-08  282  	memset(&status, 0, sizeof(status));
8e84c25821698b Eugene Krasnikov 2013-10-08  283  
8e84c25821698b Eugene Krasnikov 2013-10-08  284  	bd = (struct wcn36xx_rx_bd *)skb->data;
8e84c25821698b Eugene Krasnikov 2013-10-08  285  	buff_to_be((u32 *)bd, sizeof(*bd)/sizeof(u32));
8e84c25821698b Eugene Krasnikov 2013-10-08  286  	wcn36xx_dbg_dump(WCN36XX_DBG_RX_DUMP,
8e84c25821698b Eugene Krasnikov 2013-10-08  287  			 "BD   <<< ", (char *)bd,
8e84c25821698b Eugene Krasnikov 2013-10-08  288  			 sizeof(struct wcn36xx_rx_bd));
8e84c25821698b Eugene Krasnikov 2013-10-08  289  
a224b47ab36d7d Loic Poulain     2021-10-25  290  	if (bd->pdu.mpdu_data_off <= bd->pdu.mpdu_header_off ||
a224b47ab36d7d Loic Poulain     2021-10-25  291  	    bd->pdu.mpdu_len < bd->pdu.mpdu_header_len)
a224b47ab36d7d Loic Poulain     2021-10-25  292  		goto drop;
a224b47ab36d7d Loic Poulain     2021-10-25  293  
a224b47ab36d7d Loic Poulain     2021-10-25  294  	if (bd->asf && !bd->esf) { /* chained A-MSDU chunks */
a224b47ab36d7d Loic Poulain     2021-10-25  295  		/* Sanity check */
a224b47ab36d7d Loic Poulain     2021-10-25  296  		if (bd->pdu.mpdu_data_off + bd->pdu.mpdu_len > WCN36XX_PKT_SIZE)
a224b47ab36d7d Loic Poulain     2021-10-25  297  			goto drop;
a224b47ab36d7d Loic Poulain     2021-10-25  298  
a224b47ab36d7d Loic Poulain     2021-10-25  299  		skb_put(skb, bd->pdu.mpdu_data_off + bd->pdu.mpdu_len);
a224b47ab36d7d Loic Poulain     2021-10-25  300  		skb_pull(skb, bd->pdu.mpdu_data_off);
a224b47ab36d7d Loic Poulain     2021-10-25  301  
a224b47ab36d7d Loic Poulain     2021-10-25  302  		/* Only set status for first chained BD (with mac header) */
a224b47ab36d7d Loic Poulain     2021-10-25  303  		goto done;
a224b47ab36d7d Loic Poulain     2021-10-25  304  	}
a224b47ab36d7d Loic Poulain     2021-10-25  305  
a224b47ab36d7d Loic Poulain     2021-10-25  306  	if (bd->pdu.mpdu_header_off < sizeof(*bd) ||
a224b47ab36d7d Loic Poulain     2021-10-25  307  	    bd->pdu.mpdu_header_off + bd->pdu.mpdu_len > WCN36XX_PKT_SIZE)
a224b47ab36d7d Loic Poulain     2021-10-25  308  		goto drop;
a224b47ab36d7d Loic Poulain     2021-10-25  309  
8e84c25821698b Eugene Krasnikov 2013-10-08  310  	skb_put(skb, bd->pdu.mpdu_header_off + bd->pdu.mpdu_len);
8e84c25821698b Eugene Krasnikov 2013-10-08  311  	skb_pull(skb, bd->pdu.mpdu_header_off);
8e84c25821698b Eugene Krasnikov 2013-10-08  312  
886039036c2004 Bjorn Andersson  2017-01-11  313  	hdr = (struct ieee80211_hdr *) skb->data;
886039036c2004 Bjorn Andersson  2017-01-11  314  	fc = __le16_to_cpu(hdr->frame_control);
886039036c2004 Bjorn Andersson  2017-01-11  315  	sn = IEEE80211_SEQ_TO_SN(__le16_to_cpu(hdr->seq_ctrl));
886039036c2004 Bjorn Andersson  2017-01-11  316  
886039036c2004 Bjorn Andersson  2017-01-11  317  	status.mactime = 10;
8e84c25821698b Eugene Krasnikov 2013-10-08  318  	status.signal = -get_rssi0(bd);
8e84c25821698b Eugene Krasnikov 2013-10-08  319  	status.antenna = 1;
8e84c25821698b Eugene Krasnikov 2013-10-08  320  	status.flag = 0;
8e84c25821698b Eugene Krasnikov 2013-10-08  321  	status.rx_flags = 0;
8e84c25821698b Eugene Krasnikov 2013-10-08  322  	status.flag |= RX_FLAG_IV_STRIPPED |
8e84c25821698b Eugene Krasnikov 2013-10-08  323  		       RX_FLAG_MMIC_STRIPPED |
8e84c25821698b Eugene Krasnikov 2013-10-08  324  		       RX_FLAG_DECRYPTED;
8e84c25821698b Eugene Krasnikov 2013-10-08  325  
7fdd69c5af2160 Johannes Berg    2017-04-26  326  	wcn36xx_dbg(WCN36XX_DBG_RX, "status.flags=%x\n", status.flag);
8e84c25821698b Eugene Krasnikov 2013-10-08  327  
cec59cdeb543bd Benjamin Li      2021-10-28  328  	if (bd->scan_learn) {
cec59cdeb543bd Benjamin Li      2021-10-28  329  		/* If packet originate from hardware scanning, extract the
cec59cdeb543bd Benjamin Li      2021-10-28  330  		 * band/channel from bd descriptor.
cec59cdeb543bd Benjamin Li      2021-10-28  331  		 */
cec59cdeb543bd Benjamin Li      2021-10-28  332  		u8 hwch = (bd->reserved0 << 4) + bd->rx_ch;
cec59cdeb543bd Benjamin Li      2021-10-28  333  
cec59cdeb543bd Benjamin Li      2021-10-28  334  		if (bd->rf_band != 1 && hwch <= sizeof(ab_rx_ch_map) && hwch >= 1) {
cec59cdeb543bd Benjamin Li      2021-10-28  335  			status.band = NL80211_BAND_5GHZ;
cec59cdeb543bd Benjamin Li      2021-10-28  336  			status.freq = ieee80211_channel_to_frequency(ab_rx_ch_map[hwch - 1],
cec59cdeb543bd Benjamin Li      2021-10-28  337  								     status.band);
cec59cdeb543bd Benjamin Li      2021-10-28  338  		} else {
cec59cdeb543bd Benjamin Li      2021-10-28  339  			status.band = NL80211_BAND_2GHZ;
cec59cdeb543bd Benjamin Li      2021-10-28  340  			status.freq = ieee80211_channel_to_frequency(hwch, status.band);
cec59cdeb543bd Benjamin Li      2021-10-28  341  		}
cec59cdeb543bd Benjamin Li      2021-10-28  342  	} else {
cec59cdeb543bd Benjamin Li      2021-10-28  343  		status.band = WCN36XX_BAND(wcn);
cec59cdeb543bd Benjamin Li      2021-10-28  344  		status.freq = WCN36XX_CENTER_FREQ(wcn);
cec59cdeb543bd Benjamin Li      2021-10-28  345  	}
cec59cdeb543bd Benjamin Li      2021-10-28  346  
0aa90483f23e79 Loic Poulain     2020-06-15  347  	if (bd->rate_id < ARRAY_SIZE(wcn36xx_rate_table)) {
0aa90483f23e79 Loic Poulain     2020-06-15  348  		rate = &wcn36xx_rate_table[bd->rate_id];
0aa90483f23e79 Loic Poulain     2020-06-15  349  		status.encoding = rate->encoding;
0aa90483f23e79 Loic Poulain     2020-06-15  350  		status.enc_flags = rate->encoding_flags;
0aa90483f23e79 Loic Poulain     2020-06-15  351  		status.bw = rate->bw;
0aa90483f23e79 Loic Poulain     2020-06-15  352  		status.rate_idx = rate->mcs_or_legacy_index;
6ea131acea9802 Loic Poulain     2020-08-29  353  		sband = wcn->hw->wiphy->bands[status.band];
1af05d43b9bef4 Bryan O'Donoghue 2020-08-29  354  		status.nss = 1;
6ea131acea9802 Loic Poulain     2020-08-29  355  
6ea131acea9802 Loic Poulain     2020-08-29  356  		if (status.band == NL80211_BAND_5GHZ &&
4713a80ea03fc6 Benjamin Li      2021-10-28  357  		    status.encoding == RX_ENC_LEGACY) {
6ea131acea9802 Loic Poulain     2020-08-29  358  			/* no dsss rates in 5Ghz rates table */
6ea131acea9802 Loic Poulain     2020-08-29  359  			status.rate_idx -= 4;
6ea131acea9802 Loic Poulain     2020-08-29  360  		}
0aa90483f23e79 Loic Poulain     2020-06-15  361  	} else {
0aa90483f23e79 Loic Poulain     2020-06-15  362  		status.encoding = 0;
0aa90483f23e79 Loic Poulain     2020-06-15  363  		status.bw = 0;
0aa90483f23e79 Loic Poulain     2020-06-15  364  		status.enc_flags = 0;
0aa90483f23e79 Loic Poulain     2020-06-15  365  		status.rate_idx = 0;
0aa90483f23e79 Loic Poulain     2020-06-15  366  	}
0aa90483f23e79 Loic Poulain     2020-06-15  367  
8678fd31f2d3eb Loic Poulain     2021-08-26  368  	if (ieee80211_is_beacon(hdr->frame_control) ||
8678fd31f2d3eb Loic Poulain     2021-08-26  369  	    ieee80211_is_probe_resp(hdr->frame_control))
8678fd31f2d3eb Loic Poulain     2021-08-26  370  		status.boottime_ns = ktime_get_boottime_ns();
8678fd31f2d3eb Loic Poulain     2021-08-26  371  
8e84c25821698b Eugene Krasnikov 2013-10-08  372  	memcpy(IEEE80211_SKB_RXCB(skb), &status, sizeof(status));
8e84c25821698b Eugene Krasnikov 2013-10-08  373  
8e84c25821698b Eugene Krasnikov 2013-10-08  374  	if (ieee80211_is_beacon(hdr->frame_control)) {
8e84c25821698b Eugene Krasnikov 2013-10-08  375  		wcn36xx_dbg(WCN36XX_DBG_BEACON, "beacon skb %p len %d fc %04x sn %d\n",
8e84c25821698b Eugene Krasnikov 2013-10-08  376  			    skb, skb->len, fc, sn);
8e84c25821698b Eugene Krasnikov 2013-10-08  377  		wcn36xx_dbg_dump(WCN36XX_DBG_BEACON_DUMP, "SKB <<< ",
8e84c25821698b Eugene Krasnikov 2013-10-08  378  				 (char *)skb->data, skb->len);
8e84c25821698b Eugene Krasnikov 2013-10-08  379  	} else {
8e84c25821698b Eugene Krasnikov 2013-10-08  380  		wcn36xx_dbg(WCN36XX_DBG_RX, "rx skb %p len %d fc %04x sn %d\n",
8e84c25821698b Eugene Krasnikov 2013-10-08  381  			    skb, skb->len, fc, sn);
8e84c25821698b Eugene Krasnikov 2013-10-08  382  		wcn36xx_dbg_dump(WCN36XX_DBG_RX_DUMP, "SKB <<< ",
8e84c25821698b Eugene Krasnikov 2013-10-08  383  				 (char *)skb->data, skb->len);
8e84c25821698b Eugene Krasnikov 2013-10-08  384  	}
8e84c25821698b Eugene Krasnikov 2013-10-08  385  
a224b47ab36d7d Loic Poulain     2021-10-25  386  done:
a224b47ab36d7d Loic Poulain     2021-10-25  387  	/*  Chained AMSDU ? slow path */
a224b47ab36d7d Loic Poulain     2021-10-25  388  	if (unlikely(bd->asf && !(bd->lsf && bd->esf))) {
a224b47ab36d7d Loic Poulain     2021-10-25  389  		if (bd->esf && !skb_queue_empty(&wcn->amsdu)) {
a224b47ab36d7d Loic Poulain     2021-10-25  390  			wcn36xx_err("Discarding non complete chain");
a224b47ab36d7d Loic Poulain     2021-10-25  391  			__skb_queue_purge_irq(&wcn->amsdu);
a224b47ab36d7d Loic Poulain     2021-10-25  392  		}
a224b47ab36d7d Loic Poulain     2021-10-25  393  
a224b47ab36d7d Loic Poulain     2021-10-25  394  		__skb_queue_tail(&wcn->amsdu, skb);
a224b47ab36d7d Loic Poulain     2021-10-25  395  
a224b47ab36d7d Loic Poulain     2021-10-25  396  		if (!bd->lsf)
a224b47ab36d7d Loic Poulain     2021-10-25  397  			return 0; /* Not the last AMSDU, wait for more */
a224b47ab36d7d Loic Poulain     2021-10-25  398  
a224b47ab36d7d Loic Poulain     2021-10-25  399  		skb = wcn36xx_unchain_msdu(&wcn->amsdu);
a224b47ab36d7d Loic Poulain     2021-10-25  400  		if (!skb)
a224b47ab36d7d Loic Poulain     2021-10-25  401  			goto drop;
a224b47ab36d7d Loic Poulain     2021-10-25  402  	}
a224b47ab36d7d Loic Poulain     2021-10-25  403  
8e84c25821698b Eugene Krasnikov 2013-10-08  404  	ieee80211_rx_irqsafe(wcn->hw, skb);
8e84c25821698b Eugene Krasnikov 2013-10-08  405  
8e84c25821698b Eugene Krasnikov 2013-10-08  406  	return 0;
a224b47ab36d7d Loic Poulain     2021-10-25  407  

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

[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 56422 bytes --]

  parent reply	other threads:[~2021-10-29 18:31 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-10-28 22:31 [PATCH 1/2] wcn36xx: populate band before determining rate on RX Benjamin Li
2021-10-28 22:31 ` [PATCH 2/2] wcn36xx: fix RX BD rate mapping for 5GHz legacy rates Benjamin Li
2021-10-29  0:30   ` Bryan O'Donoghue
2021-10-29  0:39     ` Benjamin Li
2021-10-29  1:11       ` Bryan O'Donoghue
2021-11-01 13:00       ` Kalle Valo
2021-10-29 18:30   ` kernel test robot [this message]
2021-10-29 18:30     ` 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=202110300250.HTfMmjEm-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=benl@squareup.com \
    --cc=bryan.odonoghue@linaro.org \
    --cc=kbuild-all@lists.01.org \
    --cc=kuba@kernel.org \
    --cc=kvalo@codeaurora.org \
    --cc=linux-arm-msm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-wireless@vger.kernel.org \
    --cc=loic.poulain@linaro.org \
    --cc=netdev@vger.kernel.org \
    --cc=wcn36xx@lists.infradead.org \
    /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.