All of lore.kernel.org
 help / color / mirror / Atom feed
* [linux-next:master 4817/14131] drivers/net/ethernet/broadcom/genet/bcmgenet.c:688:24: sparse: expected unsigned short [usertype] val_16
@ 2020-06-01 16:07 kbuild test robot
  0 siblings, 0 replies; only message in thread
From: kbuild test robot @ 2020-06-01 16:07 UTC (permalink / raw)
  To: kbuild

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

CC: kbuild-all(a)lists.01.org
TO: "Doug, Berger," <opendmb@gmail.com>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
head:   e7b08814b16b80a0bf76eeca16317f8c2ed23b8c
commit: 3e370952287c55e5fd240cb8bb41ef8acff8829d [4817/14131] net: bcmgenet: add support for ethtool rxnfc flows
:::::: branch date: 3 days ago
:::::: commit date: 5 weeks ago
config: i386-randconfig-s001-20200601 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-13) 9.3.0
reproduce:
        # apt-get install sparse
        # sparse version: v0.6.1-243-gc100a7ab-dirty
        git checkout 3e370952287c55e5fd240cb8bb41ef8acff8829d
        # save the attached .config to linux build tree
        make W=1 C=1 ARCH=i386 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__'

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


sparse warnings: (new ones prefixed by >>)

   drivers/net/ethernet/broadcom/genet/bcmgenet.c:688:24: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned short [usertype] val_16 @@     got restricted __be16 [usertype] @@
>> drivers/net/ethernet/broadcom/genet/bcmgenet.c:688:24: sparse:     expected unsigned short [usertype] val_16
   drivers/net/ethernet/broadcom/genet/bcmgenet.c:688:24: sparse:     got restricted __be16 [usertype]
   drivers/net/ethernet/broadcom/genet/bcmgenet.c:782:5: sparse: sparse: symbol 'bcmgenet_hfb_add_filter' was not declared. Should it be static?
   include/linux/netdevice.h:4052:20: sparse: sparse: shift count is negative (-1)

# https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=3e370952287c55e5fd240cb8bb41ef8acff8829d
git remote add linux-next https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
git remote update linux-next
git checkout 3e370952287c55e5fd240cb8bb41ef8acff8829d
vim +688 drivers/net/ethernet/broadcom/genet/bcmgenet.c

3e370952287c55 Doug Berger 2020-04-29  631  
3e370952287c55 Doug Berger 2020-04-29  632  static int bcmgenet_hfb_create_rxnfc_filter(struct bcmgenet_priv *priv,
3e370952287c55 Doug Berger 2020-04-29  633  					    struct bcmgenet_rxnfc_rule *rule)
3e370952287c55 Doug Berger 2020-04-29  634  {
3e370952287c55 Doug Berger 2020-04-29  635  	struct ethtool_rx_flow_spec *fs = &rule->fs;
3e370952287c55 Doug Berger 2020-04-29  636  	int err = 0, offset = 0, f_length = 0;
3e370952287c55 Doug Berger 2020-04-29  637  	u16 val_16, mask_16;
3e370952287c55 Doug Berger 2020-04-29  638  	u8 val_8, mask_8;
3e370952287c55 Doug Berger 2020-04-29  639  	size_t size;
3e370952287c55 Doug Berger 2020-04-29  640  	u32 *f_data;
3e370952287c55 Doug Berger 2020-04-29  641  
3e370952287c55 Doug Berger 2020-04-29  642  	f_data = kcalloc(priv->hw_params->hfb_filter_size, sizeof(u32),
3e370952287c55 Doug Berger 2020-04-29  643  			 GFP_KERNEL);
3e370952287c55 Doug Berger 2020-04-29  644  	if (!f_data)
3e370952287c55 Doug Berger 2020-04-29  645  		return -ENOMEM;
3e370952287c55 Doug Berger 2020-04-29  646  
3e370952287c55 Doug Berger 2020-04-29  647  	if (fs->flow_type & FLOW_MAC_EXT) {
3e370952287c55 Doug Berger 2020-04-29  648  		bcmgenet_hfb_insert_data(f_data, 0,
3e370952287c55 Doug Berger 2020-04-29  649  					 &fs->h_ext.h_dest, &fs->m_ext.h_dest,
3e370952287c55 Doug Berger 2020-04-29  650  					 sizeof(fs->h_ext.h_dest));
3e370952287c55 Doug Berger 2020-04-29  651  	}
3e370952287c55 Doug Berger 2020-04-29  652  
3e370952287c55 Doug Berger 2020-04-29  653  	if (fs->flow_type & FLOW_EXT) {
3e370952287c55 Doug Berger 2020-04-29  654  		if (fs->m_ext.vlan_etype ||
3e370952287c55 Doug Berger 2020-04-29  655  		    fs->m_ext.vlan_tci) {
3e370952287c55 Doug Berger 2020-04-29  656  			bcmgenet_hfb_insert_data(f_data, 12,
3e370952287c55 Doug Berger 2020-04-29  657  						 &fs->h_ext.vlan_etype,
3e370952287c55 Doug Berger 2020-04-29  658  						 &fs->m_ext.vlan_etype,
3e370952287c55 Doug Berger 2020-04-29  659  						 sizeof(fs->h_ext.vlan_etype));
3e370952287c55 Doug Berger 2020-04-29  660  			bcmgenet_hfb_insert_data(f_data, 14,
3e370952287c55 Doug Berger 2020-04-29  661  						 &fs->h_ext.vlan_tci,
3e370952287c55 Doug Berger 2020-04-29  662  						 &fs->m_ext.vlan_tci,
3e370952287c55 Doug Berger 2020-04-29  663  						 sizeof(fs->h_ext.vlan_tci));
3e370952287c55 Doug Berger 2020-04-29  664  			offset += VLAN_HLEN;
3e370952287c55 Doug Berger 2020-04-29  665  			f_length += DIV_ROUND_UP(VLAN_HLEN, 2);
3e370952287c55 Doug Berger 2020-04-29  666  		}
3e370952287c55 Doug Berger 2020-04-29  667  	}
3e370952287c55 Doug Berger 2020-04-29  668  
3e370952287c55 Doug Berger 2020-04-29  669  	switch (fs->flow_type & ~(FLOW_EXT | FLOW_MAC_EXT)) {
3e370952287c55 Doug Berger 2020-04-29  670  	case ETHER_FLOW:
3e370952287c55 Doug Berger 2020-04-29  671  		f_length += DIV_ROUND_UP(ETH_HLEN, 2);
3e370952287c55 Doug Berger 2020-04-29  672  		bcmgenet_hfb_insert_data(f_data, 0,
3e370952287c55 Doug Berger 2020-04-29  673  					 &fs->h_u.ether_spec.h_dest,
3e370952287c55 Doug Berger 2020-04-29  674  					 &fs->m_u.ether_spec.h_dest,
3e370952287c55 Doug Berger 2020-04-29  675  					 sizeof(fs->h_u.ether_spec.h_dest));
3e370952287c55 Doug Berger 2020-04-29  676  		bcmgenet_hfb_insert_data(f_data, ETH_ALEN,
3e370952287c55 Doug Berger 2020-04-29  677  					 &fs->h_u.ether_spec.h_source,
3e370952287c55 Doug Berger 2020-04-29  678  					 &fs->m_u.ether_spec.h_source,
3e370952287c55 Doug Berger 2020-04-29  679  					 sizeof(fs->h_u.ether_spec.h_source));
3e370952287c55 Doug Berger 2020-04-29  680  		bcmgenet_hfb_insert_data(f_data, (2 * ETH_ALEN) + offset,
3e370952287c55 Doug Berger 2020-04-29  681  					 &fs->h_u.ether_spec.h_proto,
3e370952287c55 Doug Berger 2020-04-29  682  					 &fs->m_u.ether_spec.h_proto,
3e370952287c55 Doug Berger 2020-04-29  683  					 sizeof(fs->h_u.ether_spec.h_proto));
3e370952287c55 Doug Berger 2020-04-29  684  		break;
3e370952287c55 Doug Berger 2020-04-29  685  	case IP_USER_FLOW:
3e370952287c55 Doug Berger 2020-04-29  686  		f_length += DIV_ROUND_UP(ETH_HLEN + 20, 2);
3e370952287c55 Doug Berger 2020-04-29  687  		/* Specify IP Ether Type */
3e370952287c55 Doug Berger 2020-04-29 @688  		val_16 = htons(ETH_P_IP);
3e370952287c55 Doug Berger 2020-04-29  689  		mask_16 = 0xFFFF;
3e370952287c55 Doug Berger 2020-04-29  690  		bcmgenet_hfb_insert_data(f_data, (2 * ETH_ALEN) + offset,
3e370952287c55 Doug Berger 2020-04-29  691  					 &val_16, &mask_16, sizeof(val_16));
3e370952287c55 Doug Berger 2020-04-29  692  		bcmgenet_hfb_insert_data(f_data, 15 + offset,
3e370952287c55 Doug Berger 2020-04-29  693  					 &fs->h_u.usr_ip4_spec.tos,
3e370952287c55 Doug Berger 2020-04-29  694  					 &fs->m_u.usr_ip4_spec.tos,
3e370952287c55 Doug Berger 2020-04-29  695  					 sizeof(fs->h_u.usr_ip4_spec.tos));
3e370952287c55 Doug Berger 2020-04-29  696  		bcmgenet_hfb_insert_data(f_data, 23 + offset,
3e370952287c55 Doug Berger 2020-04-29  697  					 &fs->h_u.usr_ip4_spec.proto,
3e370952287c55 Doug Berger 2020-04-29  698  					 &fs->m_u.usr_ip4_spec.proto,
3e370952287c55 Doug Berger 2020-04-29  699  					 sizeof(fs->h_u.usr_ip4_spec.proto));
3e370952287c55 Doug Berger 2020-04-29  700  		bcmgenet_hfb_insert_data(f_data, 26 + offset,
3e370952287c55 Doug Berger 2020-04-29  701  					 &fs->h_u.usr_ip4_spec.ip4src,
3e370952287c55 Doug Berger 2020-04-29  702  					 &fs->m_u.usr_ip4_spec.ip4src,
3e370952287c55 Doug Berger 2020-04-29  703  					 sizeof(fs->h_u.usr_ip4_spec.ip4src));
3e370952287c55 Doug Berger 2020-04-29  704  		bcmgenet_hfb_insert_data(f_data, 30 + offset,
3e370952287c55 Doug Berger 2020-04-29  705  					 &fs->h_u.usr_ip4_spec.ip4dst,
3e370952287c55 Doug Berger 2020-04-29  706  					 &fs->m_u.usr_ip4_spec.ip4dst,
3e370952287c55 Doug Berger 2020-04-29  707  					 sizeof(fs->h_u.usr_ip4_spec.ip4dst));
3e370952287c55 Doug Berger 2020-04-29  708  		if (!fs->m_u.usr_ip4_spec.l4_4_bytes)
3e370952287c55 Doug Berger 2020-04-29  709  			break;
3e370952287c55 Doug Berger 2020-04-29  710  
3e370952287c55 Doug Berger 2020-04-29  711  		/* Only supports 20 byte IPv4 header */
3e370952287c55 Doug Berger 2020-04-29  712  		val_8 = 0x45;
3e370952287c55 Doug Berger 2020-04-29  713  		mask_8 = 0xFF;
3e370952287c55 Doug Berger 2020-04-29  714  		bcmgenet_hfb_insert_data(f_data, ETH_HLEN + offset,
3e370952287c55 Doug Berger 2020-04-29  715  					 &val_8, &mask_8,
3e370952287c55 Doug Berger 2020-04-29  716  					 sizeof(val_8));
3e370952287c55 Doug Berger 2020-04-29  717  		size = sizeof(fs->h_u.usr_ip4_spec.l4_4_bytes);
3e370952287c55 Doug Berger 2020-04-29  718  		bcmgenet_hfb_insert_data(f_data,
3e370952287c55 Doug Berger 2020-04-29  719  					 ETH_HLEN + 20 + offset,
3e370952287c55 Doug Berger 2020-04-29  720  					 &fs->h_u.usr_ip4_spec.l4_4_bytes,
3e370952287c55 Doug Berger 2020-04-29  721  					 &fs->m_u.usr_ip4_spec.l4_4_bytes,
3e370952287c55 Doug Berger 2020-04-29  722  					 size);
3e370952287c55 Doug Berger 2020-04-29  723  		f_length += DIV_ROUND_UP(size, 2);
3e370952287c55 Doug Berger 2020-04-29  724  		break;
3e370952287c55 Doug Berger 2020-04-29  725  	}
3e370952287c55 Doug Berger 2020-04-29  726  
3e370952287c55 Doug Berger 2020-04-29  727  	if (!fs->ring_cookie) {
3e370952287c55 Doug Berger 2020-04-29  728  		/* Ring 0 flows can be handled by the default Descriptor Ring
3e370952287c55 Doug Berger 2020-04-29  729  		 * We'll map them to ring 0, but don't enable the filter
3e370952287c55 Doug Berger 2020-04-29  730  		 */
3e370952287c55 Doug Berger 2020-04-29  731  		bcmgenet_hfb_set_filter(priv, f_data, f_length,	0,
3e370952287c55 Doug Berger 2020-04-29  732  					fs->location);
3e370952287c55 Doug Berger 2020-04-29  733  		rule->state = BCMGENET_RXNFC_STATE_DISABLED;
3e370952287c55 Doug Berger 2020-04-29  734  	} else {
3e370952287c55 Doug Berger 2020-04-29  735  		/* Other Rx rings are direct mapped here */
3e370952287c55 Doug Berger 2020-04-29  736  		bcmgenet_hfb_set_filter(priv, f_data, f_length,
3e370952287c55 Doug Berger 2020-04-29  737  					fs->ring_cookie, fs->location);
3e370952287c55 Doug Berger 2020-04-29  738  		bcmgenet_hfb_enable_filter(priv, fs->location);
3e370952287c55 Doug Berger 2020-04-29  739  		rule->state = BCMGENET_RXNFC_STATE_ENABLED;
3e370952287c55 Doug Berger 2020-04-29  740  	}
3e370952287c55 Doug Berger 2020-04-29  741  
3e370952287c55 Doug Berger 2020-04-29  742  	kfree(f_data);
3e370952287c55 Doug Berger 2020-04-29  743  
3e370952287c55 Doug Berger 2020-04-29  744  	return err;
3e370952287c55 Doug Berger 2020-04-29  745  }
3e370952287c55 Doug Berger 2020-04-29  746  

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

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2020-06-01 16:07 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-06-01 16:07 [linux-next:master 4817/14131] drivers/net/ethernet/broadcom/genet/bcmgenet.c:688:24: sparse: expected unsigned short [usertype] val_16 kbuild test robot

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.