lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [day] [month] [year] [list]
Date:   Tue, 11 Oct 2022 00:54:56 +0800
From:   kernel test robot <lkp@...el.com>
To:     Lorenzo Bianconi <lorenzo@...nel.org>
Cc:     kbuild-all@...ts.01.org, linux-kernel@...r.kernel.org
Subject: drivers/net/ethernet/mediatek/mtk_eth_soc.c:1113:45: sparse: sparse:
 incorrect type in assignment (different base types)

Hi Lorenzo,

FYI, the error/warning was bisected to this commit, please ignore it if it's irrelevant.

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   493ffd6605b2d3d4dc7008ab927dba319f36671f
commit: a3c62a042237d1adeb0290dcb768e17edd6dcd25 net: mtk_eth: add COMPILE_TEST support
date:   10 months ago
config: openrisc-randconfig-s053-20221010
compiler: or1k-linux-gcc (GCC) 12.1.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.4-39-gce1a6720-dirty
        # https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=a3c62a042237d1adeb0290dcb768e17edd6dcd25
        git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
        git fetch --no-tags linus master
        git checkout a3c62a042237d1adeb0290dcb768e17edd6dcd25
        # save the config file
        mkdir build_dir && cp config build_dir/.config
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' O=build_dir ARCH=openrisc SHELL=/bin/bash

If you fix the issue, kindly add following tag where applicable
| Reported-by: kernel test robot <lkp@...el.com>

sparse warnings: (new ones prefixed by >>)
>> drivers/net/ethernet/mediatek/mtk_eth_soc.c:1113:45: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __sum16 [usertype] check @@     got restricted __be16 [usertype] @@
   drivers/net/ethernet/mediatek/mtk_eth_soc.c:1113:45: sparse:     expected restricted __sum16 [usertype] check
   drivers/net/ethernet/mediatek/mtk_eth_soc.c:1113:45: sparse:     got restricted __be16 [usertype]
>> drivers/net/ethernet/mediatek/mtk_eth_soc.c:1801:22: sparse: sparse: incorrect type in argument 2 (different base types) @@     expected unsigned int [usertype] val @@     got restricted __be32 [usertype] ip @@
   drivers/net/ethernet/mediatek/mtk_eth_soc.c:1801:22: sparse:     expected unsigned int [usertype] val
   drivers/net/ethernet/mediatek/mtk_eth_soc.c:1801:22: sparse:     got restricted __be32 [usertype] ip
>> drivers/net/ethernet/mediatek/mtk_eth_soc.c:1846:40: sparse: sparse: cast from restricted __be32
>> drivers/net/ethernet/mediatek/mtk_eth_soc.c:1903:38: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __be32 [usertype] ip4dst @@     got unsigned int [usertype] @@
   drivers/net/ethernet/mediatek/mtk_eth_soc.c:1903:38: sparse:     expected restricted __be32 [usertype] ip4dst
   drivers/net/ethernet/mediatek/mtk_eth_soc.c:1903:38: sparse:     got unsigned int [usertype]
>> drivers/net/ethernet/mediatek/mtk_eth_soc.c:1907:38: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __be32 [usertype] ip4src @@     got unsigned int @@
   drivers/net/ethernet/mediatek/mtk_eth_soc.c:1907:38: sparse:     expected restricted __be32 [usertype] ip4src
   drivers/net/ethernet/mediatek/mtk_eth_soc.c:1907:38: sparse:     got unsigned int
>> drivers/net/ethernet/mediatek/mtk_eth_soc.c:1909:36: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __be16 [usertype] psrc @@     got int @@
   drivers/net/ethernet/mediatek/mtk_eth_soc.c:1909:36: sparse:     expected restricted __be16 [usertype] psrc
   drivers/net/ethernet/mediatek/mtk_eth_soc.c:1909:36: sparse:     got int
>> drivers/net/ethernet/mediatek/mtk_eth_soc.c:1911:36: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __be16 [usertype] pdst @@     got int @@
   drivers/net/ethernet/mediatek/mtk_eth_soc.c:1911:36: sparse:     expected restricted __be16 [usertype] pdst
   drivers/net/ethernet/mediatek/mtk_eth_soc.c:1911:36: sparse:     got int
--
>> drivers/net/ethernet/mediatek/mtk_ppe_debugfs.c:60:27: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned int @@     got restricted __be32 [usertype] @@
   drivers/net/ethernet/mediatek/mtk_ppe_debugfs.c:60:27: sparse:     expected unsigned int
   drivers/net/ethernet/mediatek/mtk_ppe_debugfs.c:60:27: sparse:     got restricted __be32 [usertype]
>> drivers/net/ethernet/mediatek/mtk_ppe_debugfs.c:158:46: sparse: sparse: cast to restricted __be16
--
>> drivers/net/ethernet/mediatek/mtk_ppe_offload.c:88:19: sparse: sparse: cast to restricted __be32
>> drivers/net/ethernet/mediatek/mtk_ppe_offload.c:92:41: sparse: sparse: restricted __be32 degrades to integer

vim +1113 drivers/net/ethernet/mediatek/mtk_eth_soc.c

13c822f6d468ca John Crispin  2016-04-08  1074  
e910a3993818ab Yunjian Wang  2020-05-06  1075  static netdev_tx_t mtk_start_xmit(struct sk_buff *skb, struct net_device *dev)
656e705243fd0c John Crispin  2016-03-08  1076  {
656e705243fd0c John Crispin  2016-03-08  1077  	struct mtk_mac *mac = netdev_priv(dev);
656e705243fd0c John Crispin  2016-03-08  1078  	struct mtk_eth *eth = mac->hw;
656e705243fd0c John Crispin  2016-03-08  1079  	struct mtk_tx_ring *ring = &eth->tx_ring;
656e705243fd0c John Crispin  2016-03-08  1080  	struct net_device_stats *stats = &dev->stats;
656e705243fd0c John Crispin  2016-03-08  1081  	bool gso = false;
656e705243fd0c John Crispin  2016-03-08  1082  	int tx_num;
656e705243fd0c John Crispin  2016-03-08  1083  
34c2e4c9e9b3e4 John Crispin  2016-04-08  1084  	/* normally we can rely on the stack not calling this more than once,
34c2e4c9e9b3e4 John Crispin  2016-04-08  1085  	 * however we have 2 queues running on the same ring so we need to lock
34c2e4c9e9b3e4 John Crispin  2016-04-08  1086  	 * the ring access
34c2e4c9e9b3e4 John Crispin  2016-04-08  1087  	 */
e3e9652a432075 Sean Wang     2016-08-11  1088  	spin_lock(&eth->page_lock);
34c2e4c9e9b3e4 John Crispin  2016-04-08  1089  
dce6fa42199d49 Sean Wang     2016-09-14  1090  	if (unlikely(test_bit(MTK_RESETTING, &eth->state)))
dce6fa42199d49 Sean Wang     2016-09-14  1091  		goto drop;
dce6fa42199d49 Sean Wang     2016-09-14  1092  
656e705243fd0c John Crispin  2016-03-08  1093  	tx_num = mtk_cal_txd_req(skb);
656e705243fd0c John Crispin  2016-03-08  1094  	if (unlikely(atomic_read(&ring->free_count) <= tx_num)) {
16ef670789b252 Felix Fietkau 2021-04-22  1095  		netif_stop_queue(dev);
656e705243fd0c John Crispin  2016-03-08  1096  		netif_err(eth, tx_queued, dev,
656e705243fd0c John Crispin  2016-03-08  1097  			  "Tx Ring full when queue awake!\n");
e3e9652a432075 Sean Wang     2016-08-11  1098  		spin_unlock(&eth->page_lock);
656e705243fd0c John Crispin  2016-03-08  1099  		return NETDEV_TX_BUSY;
656e705243fd0c John Crispin  2016-03-08  1100  	}
656e705243fd0c John Crispin  2016-03-08  1101  
656e705243fd0c John Crispin  2016-03-08  1102  	/* TSO: fill MSS info in tcp checksum field */
656e705243fd0c John Crispin  2016-03-08  1103  	if (skb_is_gso(skb)) {
656e705243fd0c John Crispin  2016-03-08  1104  		if (skb_cow_head(skb, 0)) {
656e705243fd0c John Crispin  2016-03-08  1105  			netif_warn(eth, tx_err, dev,
656e705243fd0c John Crispin  2016-03-08  1106  				   "GSO expand head fail.\n");
656e705243fd0c John Crispin  2016-03-08  1107  			goto drop;
656e705243fd0c John Crispin  2016-03-08  1108  		}
656e705243fd0c John Crispin  2016-03-08  1109  
656e705243fd0c John Crispin  2016-03-08  1110  		if (skb_shinfo(skb)->gso_type &
656e705243fd0c John Crispin  2016-03-08  1111  				(SKB_GSO_TCPV4 | SKB_GSO_TCPV6)) {
656e705243fd0c John Crispin  2016-03-08  1112  			gso = true;
656e705243fd0c John Crispin  2016-03-08 @1113  			tcp_hdr(skb)->check = htons(skb_shinfo(skb)->gso_size);
656e705243fd0c John Crispin  2016-03-08  1114  		}
656e705243fd0c John Crispin  2016-03-08  1115  	}
656e705243fd0c John Crispin  2016-03-08  1116  
656e705243fd0c John Crispin  2016-03-08  1117  	if (mtk_tx_map(skb, dev, tx_num, ring, gso) < 0)
656e705243fd0c John Crispin  2016-03-08  1118  		goto drop;
656e705243fd0c John Crispin  2016-03-08  1119  
82c6544dddc6c4 John Crispin  2016-06-10  1120  	if (unlikely(atomic_read(&ring->free_count) <= ring->thresh))
16ef670789b252 Felix Fietkau 2021-04-22  1121  		netif_stop_queue(dev);
82c6544dddc6c4 John Crispin  2016-06-10  1122  
e3e9652a432075 Sean Wang     2016-08-11  1123  	spin_unlock(&eth->page_lock);
656e705243fd0c John Crispin  2016-03-08  1124  
656e705243fd0c John Crispin  2016-03-08  1125  	return NETDEV_TX_OK;
656e705243fd0c John Crispin  2016-03-08  1126  
656e705243fd0c John Crispin  2016-03-08  1127  drop:
e3e9652a432075 Sean Wang     2016-08-11  1128  	spin_unlock(&eth->page_lock);
656e705243fd0c John Crispin  2016-03-08  1129  	stats->tx_dropped++;
81ad2b7de6dd35 Wei Yongjun   2016-10-20  1130  	dev_kfree_skb_any(skb);
656e705243fd0c John Crispin  2016-03-08  1131  	return NETDEV_TX_OK;
656e705243fd0c John Crispin  2016-03-08  1132  }
656e705243fd0c John Crispin  2016-03-08  1133  

:::::: The code at line 1113 was first introduced by commit
:::::: 656e705243fd0c2864b89634ea16ed444ef64dc6 net-next: mediatek: add support for MT7623 ethernet

:::::: TO: John Crispin <blogic@...nwrt.org>
:::::: CC: David S. Miller <davem@...emloft.net>

-- 
0-DAY CI Kernel Test Service
https://01.org/lkp

View attachment "config" of type "text/plain" (130275 bytes)

Powered by blists - more mailing lists