drivers/net/ethernet/stmicro/stmmac/stmmac_selftests.c:1225:18: sparse: sparse: incorrect type in assignment (different base types)
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master head: f37e99aca03f63aa3f2bd13ceaf769455d12c4b0 commit: 4647e021193d638d3c87d1f1b9a5f7f7a48f36a3 net: stmmac: selftests: Add selftest for L3/L4 Filters date: 11 months ago config: powerpc-randconfig-s032-20200723 (attached as .config) compiler: powerpc-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.2-93-g4c6cbe55-dirty git checkout 4647e021193d638d3c87d1f1b9a5f7f7a48f36a3 # 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=powerpc If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot sparse warnings: (new ones prefixed by >>) drivers/net/ethernet/stmicro/stmmac/stmmac_selftests.c:991:27: sparse: sparse: incorrect type in assignment (different base types) @@ expected restricted __be32 [usertype] mask @@ got int @@ drivers/net/ethernet/stmicro/stmmac/stmmac_selftests.c:991:27: sparse: expected restricted __be32 [usertype] mask drivers/net/ethernet/stmicro/stmmac/stmmac_selftests.c:991:27: sparse: got int >> drivers/net/ethernet/stmicro/stmmac/stmmac_selftests.c:1225:18: sparse: >> sparse: incorrect type in assignment (different base types) @@ expected >> restricted __be32 [addressable] [usertype] src @@ got unsigned int >> [usertype] src_mask @@ drivers/net/ethernet/stmicro/stmmac/stmmac_selftests.c:1225:18: sparse: expected restricted __be32 [addressable] [usertype] src drivers/net/ethernet/stmicro/stmmac/stmmac_selftests.c:1225:18: sparse: got unsigned int [usertype] src_mask >> drivers/net/ethernet/stmicro/stmmac/stmmac_selftests.c:1226:18: sparse: >> sparse: incorrect type in assignment (different base types) @@ expected >> restricted __be32 [addressable] [usertype] dst @@ got unsigned int >> [usertype] dst_mask @@ drivers/net/ethernet/stmicro/stmmac/stmmac_selftests.c:1226:18: sparse: expected restricted __be32 [addressable] [usertype] dst drivers/net/ethernet/stmicro/stmmac/stmmac_selftests.c:1226:18: sparse: got unsigned int [usertype] dst_mask >> drivers/net/ethernet/stmicro/stmmac/stmmac_selftests.c:1352:24: sparse: >> sparse: incorrect type in assignment (different base types) @@ expected >> restricted __be16 [addressable] [usertype] src @@ got unsigned int >> [usertype] src_mask @@ drivers/net/ethernet/stmicro/stmmac/stmmac_selftests.c:1352:24: sparse: expected restricted __be16 [addressable] [usertype] src drivers/net/ethernet/stmicro/stmmac/stmmac_selftests.c:1352:24: sparse: got unsigned int [usertype] src_mask >> drivers/net/ethernet/stmicro/stmmac/stmmac_selftests.c:1353:24: sparse: >> sparse: incorrect type in assignment (different base types) @@ expected >> restricted __be16 [addressable] [usertype] dst @@ got unsigned int >> [usertype] dst_mask @@ drivers/net/ethernet/stmicro/stmmac/stmmac_selftests.c:1353:24: sparse: expected restricted __be16 [addressable] [usertype] dst drivers/net/ethernet/stmicro/stmmac/stmmac_selftests.c:1353:24: sparse: got unsigned int [usertype] dst_mask vim +1225 drivers/net/ethernet/stmicro/stmmac/stmmac_selftests.c 1170 1171 #ifdef CONFIG_NET_CLS_ACT 1172 static int __stmmac_test_l3filt(struct stmmac_priv *priv, u32 dst, u32 src, 1173 u32 dst_mask, u32 src_mask) 1174 { 1175 struct flow_dissector_key_ipv4_addrs key, mask; 1176 unsigned long dummy_cookie = 0xdeadbeef; 1177 struct stmmac_packet_attrs attr = { }; 1178 struct flow_dissector *dissector; 1179 struct flow_cls_offload *cls; 1180 struct flow_rule *rule; 1181 int ret; 1182 1183 if (!tc_can_offload(priv->dev)) 1184 return -EOPNOTSUPP; 1185 if (!priv->dma_cap.l3l4fnum) 1186 return -EOPNOTSUPP; 1187 if (priv->rss.enable) { 1188 struct stmmac_rss rss = { .enable = false, }; 1189 1190 stmmac_rss_configure(priv, priv->hw, &rss, 1191 priv->plat->rx_queues_to_use); 1192 } 1193 1194 dissector = kzalloc(sizeof(*dissector), GFP_KERNEL); 1195 if (!dissector) { 1196 ret = -ENOMEM; 1197 goto cleanup_rss; 1198 } 1199 1200 dissector->used_keys |= (1 << FLOW_DISSECTOR_KEY_IPV4_ADDRS); 1201 dissector-&
drivers/net/ethernet/stmicro/stmmac/stmmac_selftests.c:1225:18: sparse: sparse: incorrect type in assignment (different base types)
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master head: 6469e8962c20b580b471790fe42367750599 commit: 4647e021193d638d3c87d1f1b9a5f7f7a48f36a3 net: stmmac: selftests: Add selftest for L3/L4 Filters date: 10 months ago config: riscv-randconfig-s031-20200621 (attached as .config) compiler: riscv32-linux-gcc (GCC) 9.3.0 reproduce: # apt-get install sparse # sparse version: v0.6.2-rc2-13-gc59158c8-dirty git checkout 4647e021193d638d3c87d1f1b9a5f7f7a48f36a3 # save the attached .config to linux build tree make W=1 C=1 ARCH=riscv CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot sparse warnings: (new ones prefixed by >>) drivers/net/ethernet/stmicro/stmmac/stmmac_selftests.c:991:27: sparse: sparse: incorrect type in assignment (different base types) @@ expected restricted __be32 [usertype] mask @@ got int @@ drivers/net/ethernet/stmicro/stmmac/stmmac_selftests.c:991:27: sparse: expected restricted __be32 [usertype] mask drivers/net/ethernet/stmicro/stmmac/stmmac_selftests.c:991:27: sparse: got int >> drivers/net/ethernet/stmicro/stmmac/stmmac_selftests.c:1225:18: sparse: >> sparse: incorrect type in assignment (different base types) @@ expected >> restricted __be32 [addressable] [usertype] src @@ got unsigned int >> [usertype] src_mask @@ drivers/net/ethernet/stmicro/stmmac/stmmac_selftests.c:1225:18: sparse: expected restricted __be32 [addressable] [usertype] src drivers/net/ethernet/stmicro/stmmac/stmmac_selftests.c:1225:18: sparse: got unsigned int [usertype] src_mask >> drivers/net/ethernet/stmicro/stmmac/stmmac_selftests.c:1226:18: sparse: >> sparse: incorrect type in assignment (different base types) @@ expected >> restricted __be32 [addressable] [usertype] dst @@ got unsigned int >> [usertype] dst_mask @@ drivers/net/ethernet/stmicro/stmmac/stmmac_selftests.c:1226:18: sparse: expected restricted __be32 [addressable] [usertype] dst drivers/net/ethernet/stmicro/stmmac/stmmac_selftests.c:1226:18: sparse: got unsigned int [usertype] dst_mask >> drivers/net/ethernet/stmicro/stmmac/stmmac_selftests.c:1352:24: sparse: >> sparse: incorrect type in assignment (different base types) @@ expected >> restricted __be16 [addressable] [usertype] src @@ got unsigned int >> [usertype] src_mask @@ drivers/net/ethernet/stmicro/stmmac/stmmac_selftests.c:1352:24: sparse: expected restricted __be16 [addressable] [usertype] src drivers/net/ethernet/stmicro/stmmac/stmmac_selftests.c:1352:24: sparse: got unsigned int [usertype] src_mask >> drivers/net/ethernet/stmicro/stmmac/stmmac_selftests.c:1353:24: sparse: >> sparse: incorrect type in assignment (different base types) @@ expected >> restricted __be16 [addressable] [usertype] dst @@ got unsigned int >> [usertype] dst_mask @@ drivers/net/ethernet/stmicro/stmmac/stmmac_selftests.c:1353:24: sparse: expected restricted __be16 [addressable] [usertype] dst drivers/net/ethernet/stmicro/stmmac/stmmac_selftests.c:1353:24: sparse: got unsigned int [usertype] dst_mask vim +1225 drivers/net/ethernet/stmicro/stmmac/stmmac_selftests.c 1170 1171 #ifdef CONFIG_NET_CLS_ACT 1172 static int __stmmac_test_l3filt(struct stmmac_priv *priv, u32 dst, u32 src, 1173 u32 dst_mask, u32 src_mask) 1174 { 1175 struct flow_dissector_key_ipv4_addrs key, mask; 1176 unsigned long dummy_cookie = 0xdeadbeef; 1177 struct stmmac_packet_attrs attr = { }; 1178 struct flow_dissector *dissector; 1179 struct flow_cls_offload *cls; 1180 struct flow_rule *rule; 1181 int ret; 1182 1183 if (!tc_can_offload(priv->dev)) 1184 return -EOPNOTSUPP; 1185 if (!priv->dma_cap.l3l4fnum) 1186 return -EOPNOTSUPP; 1187 if (priv->rss.enable) { 1188 struct stmmac_rss rss = { .enable = false, }; 1189 1190 stmmac_rss_configure(priv, priv->hw, &rss, 1191 priv->plat->rx_queues_to_use); 1192 } 1193 1194 dissector = kzalloc(sizeof(*dissector), GFP_KERNEL); 1195 if (!dissector) { 1196 ret = -ENOMEM; 1197 goto cleanup_rss; 1198 } 1199 1200 dissector->used_keys |= (1 << FLOW_DISSECTOR_KEY_IPV4_ADDRS); 1201 dissector->offset[FLOW_DISSECTOR_KEY_IPV4_ADDRS] = 0; 1202 1203 cls = kzalloc(sizeof(*cls), GFP_KERNEL); 1204 if (!cls) { 1205 ret = -ENOMEM; 1206