All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: kbuild-all@lists.01.org
Subject: [linux-stable-rc:linux-5.4.y 1315/3868] drivers/net/wireless/ath/ath9k/htc_drv_txrx.c:987:20: sparse: sparse: incorrect type in assignment (different base types)
Date: Fri, 13 Nov 2020 16:12:18 +0800	[thread overview]
Message-ID: <202011131614.SkCURR75-lkp@intel.com> (raw)

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

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-5.4.y
head:   e72abf1f11a982a2a3fb555b5a9bd2eb2011dee8
commit: e307bfda74a9c66426313eca25ccfea877a50036 [1315/3868] ath9k_htc: Discard undersized packets
config: sh-randconfig-s032-20201103 (attached as .config)
compiler: sh4-linux-gcc (GCC) 9.3.0
reproduce:
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # apt-get install sparse
        # sparse version: v0.6.3-107-gaf3512a6-dirty
        # https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git/commit/?id=e307bfda74a9c66426313eca25ccfea877a50036
        git remote add linux-stable-rc https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git
        git fetch --no-tags linux-stable-rc linux-5.4.y
        git checkout e307bfda74a9c66426313eca25ccfea877a50036
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' ARCH=sh 

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


"sparse warnings: (new ones prefixed by >>)"
   drivers/net/wireless/ath/ath9k/htc_drv_txrx.c: note: in included file (through arch/sh/include/asm/unistd.h, include/uapi/linux/unistd.h, include/linux/compat.h, ...):
   ./arch/sh/include/generated/uapi/asm/unistd_32.h:409:37: sparse: sparse: no newline at end of file
>> drivers/net/wireless/ath/ath9k/htc_drv_txrx.c:987:20: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __be16 [usertype] rs_datalen @@     got unsigned short [usertype] @@
   drivers/net/wireless/ath/ath9k/htc_drv_txrx.c:987:20: sparse:     expected restricted __be16 [usertype] rs_datalen
>> drivers/net/wireless/ath/ath9k/htc_drv_txrx.c:987:20: sparse:     got unsigned short [usertype]
   drivers/net/wireless/ath/ath9k/htc_drv_txrx.c:988:13: sparse: sparse: restricted __be16 degrades to integer
   drivers/net/wireless/ath/ath9k/htc_drv_txrx.c:1001:13: sparse: sparse: restricted __be16 degrades to integer

vim +987 drivers/net/wireless/ath/ath9k/htc_drv_txrx.c

   962	
   963	static bool ath9k_rx_prepare(struct ath9k_htc_priv *priv,
   964				     struct ath9k_htc_rxbuf *rxbuf,
   965				     struct ieee80211_rx_status *rx_status)
   966	
   967	{
   968		struct ieee80211_hdr *hdr;
   969		struct ieee80211_hw *hw = priv->hw;
   970		struct sk_buff *skb = rxbuf->skb;
   971		struct ath_common *common = ath9k_hw_common(priv->ah);
   972		struct ath_hw *ah = common->ah;
   973		struct ath_htc_rx_status *rxstatus;
   974		struct ath_rx_status rx_stats;
   975		bool decrypt_error = false;
   976		__be16 rs_datalen;
   977		bool is_phyerr;
   978	
   979		if (skb->len < HTC_RX_FRAME_HEADER_SIZE) {
   980			ath_err(common, "Corrupted RX frame, dropping (len: %d)\n",
   981				skb->len);
   982			goto rx_next;
   983		}
   984	
   985		rxstatus = (struct ath_htc_rx_status *)skb->data;
   986	
 > 987		rs_datalen = be16_to_cpu(rxstatus->rs_datalen);
   988		if (unlikely(rs_datalen -
   989		    (skb->len - HTC_RX_FRAME_HEADER_SIZE) != 0)) {
   990			ath_err(common,
   991				"Corrupted RX data len, dropping (dlen: %d, skblen: %d)\n",
   992				rs_datalen, skb->len);
   993			goto rx_next;
   994		}
   995	
   996		is_phyerr = rxstatus->rs_status & ATH9K_RXERR_PHY;
   997		/*
   998		 * Discard zero-length packets and packets smaller than an ACK
   999		 * which are not PHY_ERROR (short radar pulses have a length of 3)
  1000		 */
  1001		if (unlikely(!rs_datalen || (rs_datalen < 10 && !is_phyerr))) {
  1002			ath_warn(common,
  1003				 "Short RX data len, dropping (dlen: %d)\n",
  1004				 rs_datalen);
  1005			goto rx_next;
  1006		}
  1007	
  1008		/* Get the RX status information */
  1009	
  1010		memset(rx_status, 0, sizeof(struct ieee80211_rx_status));
  1011	
  1012		/* Copy everything from ath_htc_rx_status (HTC_RX_FRAME_HEADER).
  1013		 * After this, we can drop this part of skb. */
  1014		rx_status_htc_to_ath(&rx_stats, rxstatus);
  1015		ath9k_htc_err_stat_rx(priv, &rx_stats);
  1016		rx_status->mactime = be64_to_cpu(rxstatus->rs_tstamp);
  1017		skb_pull(skb, HTC_RX_FRAME_HEADER_SIZE);
  1018	
  1019		/*
  1020		 * everything but the rate is checked here, the rate check is done
  1021		 * separately to avoid doing two lookups for a rate for each frame.
  1022		 */
  1023		hdr = (struct ieee80211_hdr *)skb->data;
  1024	
  1025		/*
  1026		 * Process PHY errors and return so that the packet
  1027		 * can be dropped.
  1028		 */
  1029		if (unlikely(is_phyerr)) {
  1030			/* TODO: Not using DFS processing now. */
  1031			if (ath_cmn_process_fft(&priv->spec_priv, hdr,
  1032					    &rx_stats, rx_status->mactime)) {
  1033				/* TODO: Code to collect spectral scan statistics */
  1034			}
  1035			goto rx_next;
  1036		}
  1037	
  1038		if (!ath9k_cmn_rx_accept(common, hdr, rx_status, &rx_stats,
  1039				&decrypt_error, priv->rxfilter))
  1040			goto rx_next;
  1041	
  1042		ath9k_cmn_rx_skb_postprocess(common, skb, &rx_stats,
  1043					     rx_status, decrypt_error);
  1044	
  1045		if (ath9k_cmn_process_rate(common, hw, &rx_stats, rx_status))
  1046			goto rx_next;
  1047	
  1048		rx_stats.is_mybeacon = ath_is_mybeacon(common, hdr);
  1049		ath9k_cmn_process_rssi(common, hw, &rx_stats, rx_status);
  1050	
  1051		rx_status->band = ah->curchan->chan->band;
  1052		rx_status->freq = ah->curchan->chan->center_freq;
  1053		rx_status->antenna = rx_stats.rs_antenna;
  1054		rx_status->flag |= RX_FLAG_MACTIME_END;
  1055	
  1056		return true;
  1057	rx_next:
  1058		return false;
  1059	}
  1060	

---
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: 26007 bytes --]

             reply	other threads:[~2020-11-13  8:12 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-11-13  8:12 kernel test robot [this message]
2020-11-13  8:46 ` [linux-stable-rc:linux-5.4.y 1315/3868] drivers/net/wireless/ath/ath9k/htc_drv_txrx.c:987:20: sparse: sparse: incorrect type in assignment (different base types) Masashi Honma
2020-11-13 12:45   ` Greg Kroah-Hartman

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=202011131614.SkCURR75-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=kbuild-all@lists.01.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.