tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master head: 444fc5cde64330661bf59944c43844e7d4c2ccd8 commit: 804c5702fc583afbdb6860f79e9d4058570ccc43 qed: Use dmae to write to widebus registers in fw_funcs date: 4 months ago config: ia64-randconfig-s032-20200527 (attached as .config) compiler: ia64-linux-gcc (GCC) 9.3.0 reproduce: # apt-get install sparse # sparse version: v0.6.1-240-gf0fe1cd9-dirty git checkout 804c5702fc583afbdb6860f79e9d4058570ccc43 # save the attached .config to linux build tree make W=1 C=1 ARCH=ia64 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__'
If you fix the issue, kindly add following tag as appropriate Reported-by: kbuild test robot <l...@intel.com> sparse warnings: (new ones prefixed by >>) drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:545:17: sparse: right side has type int drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:545:17: sparse: sparse: invalid assignment: |= drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:545:17: sparse: left side has type restricted __le32 drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:545:17: sparse: right side has type unsigned long long drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1343:9: sparse: sparse: invalid assignment: &= drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1343:9: sparse: left side has type restricted __le32 drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1343:9: sparse: right side has type int drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1343:9: sparse: sparse: invalid assignment: |= drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1343:9: sparse: left side has type restricted __le32 drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1343:9: sparse: right side has type unsigned long long drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1344:9: sparse: sparse: invalid assignment: &= drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1344:9: sparse: left side has type restricted __le32 drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1344:9: sparse: right side has type int drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1344:9: sparse: sparse: invalid assignment: |= drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1344:9: sparse: left side has type restricted __le32 drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1344:9: sparse: right side has type unsigned long long drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1347:17: sparse: sparse: invalid assignment: &= drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1347:17: sparse: left side has type restricted __le32 drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1347:17: sparse: right side has type int drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1347:17: sparse: sparse: invalid assignment: |= drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1347:17: sparse: left side has type restricted __le32 drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1347:17: sparse: right side has type unsigned long long drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1348:17: sparse: sparse: invalid assignment: &= drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1348:17: sparse: left side has type restricted __le32 drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1348:17: sparse: right side has type int drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1348:17: sparse: sparse: invalid assignment: |= drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1348:17: sparse: left side has type restricted __le32 drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1348:17: sparse: right side has type unsigned long long drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1349:17: sparse: sparse: invalid assignment: &= drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1349:17: sparse: left side has type restricted __le32 drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1349:17: sparse: right side has type int drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1349:17: sparse: sparse: invalid assignment: |= drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1349:17: sparse: left side has type restricted __le32 drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1349:17: sparse: right side has type unsigned long long drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1350:17: sparse: sparse: invalid assignment: &= drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1350:17: sparse: left side has type restricted __le32 drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1350:17: sparse: right side has type int drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1350:17: sparse: sparse: invalid assignment: |= drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1350:17: sparse: left side has type restricted __le32 drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1350:17: sparse: right side has type unsigned long long drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1351:17: sparse: sparse: invalid assignment: &= drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1351:17: sparse: left side has type restricted __le32 drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1351:17: sparse: right side has type int drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1351:17: sparse: sparse: invalid assignment: |= drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1351:17: sparse: left side has type restricted __le32 drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1351:17: sparse: right side has type unsigned long long drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1352:17: sparse: sparse: invalid assignment: &= drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1352:17: sparse: left side has type restricted __le32 drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1352:17: sparse: right side has type int drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1352:17: sparse: sparse: invalid assignment: |= drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1352:17: sparse: left side has type restricted __le32 drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1352:17: sparse: right side has type unsigned long long drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1354:17: sparse: sparse: invalid assignment: &= drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1354:17: sparse: left side has type restricted __le32 drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1354:17: sparse: right side has type int drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1354:17: sparse: sparse: invalid assignment: |= drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1354:17: sparse: left side has type restricted __le32 drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1354:17: sparse: right side has type unsigned long long drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1355:17: sparse: sparse: invalid assignment: &= drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1355:17: sparse: left side has type restricted __le32 drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1355:17: sparse: right side has type int drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1355:17: sparse: sparse: invalid assignment: |= drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1355:17: sparse: left side has type restricted __le32 drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1355:17: sparse: right side has type unsigned long long drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1356:17: sparse: sparse: invalid assignment: &= drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1356:17: sparse: left side has type restricted __le32 drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1356:17: sparse: right side has type int drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1356:17: sparse: sparse: invalid assignment: |= drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1356:17: sparse: left side has type restricted __le32 drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1356:17: sparse: right side has type unsigned long long drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1358:17: sparse: sparse: invalid assignment: &= drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1358:17: sparse: left side has type restricted __le32 drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1358:17: sparse: right side has type int drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1358:17: sparse: sparse: invalid assignment: |= drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1358:17: sparse: left side has type restricted __le32 drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1358:17: sparse: right side has type unsigned long long drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1359:17: sparse: sparse: invalid assignment: &= drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1359:17: sparse: left side has type restricted __le32 drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1359:17: sparse: right side has type int drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1359:17: sparse: sparse: invalid assignment: |= drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1359:17: sparse: left side has type restricted __le32 drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1359:17: sparse: right side has type unsigned long long drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1361:17: sparse: sparse: invalid assignment: &= drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1361:17: sparse: left side has type restricted __le32 drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1361:17: sparse: right side has type int drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1361:17: sparse: sparse: invalid assignment: |= drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1361:17: sparse: left side has type restricted __le32 drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1361:17: sparse: right side has type unsigned long long drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1362:17: sparse: sparse: invalid assignment: &= drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1362:17: sparse: left side has type restricted __le32 drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1362:17: sparse: right side has type int drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1362:17: sparse: sparse: invalid assignment: |= drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1362:17: sparse: left side has type restricted __le32 drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1362:17: sparse: right side has type unsigned long long drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1364:17: sparse: sparse: invalid assignment: &= drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1364:17: sparse: left side has type restricted __le32 drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1364:17: sparse: right side has type int drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1364:17: sparse: sparse: invalid assignment: |= drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1364:17: sparse: left side has type restricted __le32 drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1364:17: sparse: right side has type unsigned long long >> drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1377:21: sparse: sparse: >> incorrect type in assignment (different base types) @@ expected >> restricted __le32 [addressable] [usertype] lo @@ got unsigned int @@ drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1377:21: sparse: expected restricted __le32 [addressable] [usertype] lo drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1377:21: sparse: got unsigned int >> drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1378:21: sparse: sparse: >> incorrect type in assignment (different base types) @@ expected >> restricted __le32 [addressable] [usertype] hi @@ got int @@ drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1378:21: sparse: expected restricted __le32 [addressable] [usertype] hi drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1378:21: sparse: got int drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1419:23: sparse: sparse: cast to restricted __be32 drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1419:23: sparse: sparse: cast to restricted __be32 drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1419:23: sparse: sparse: cast to restricted __be32 drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1419:23: sparse: sparse: cast to restricted __be32 drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1419:23: sparse: sparse: cast to restricted __be32 drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c:1419:23: sparse: sparse: cast to restricted __be32 vim +1377 drivers/net/ethernet/qlogic/qed/qed_init_fw_funcs.c 1263 1264 void qed_gft_config(struct qed_hwfn *p_hwfn, 1265 struct qed_ptt *p_ptt, 1266 u16 pf_id, 1267 bool tcp, 1268 bool udp, 1269 bool ipv4, bool ipv6, enum gft_profile_type profile_type) 1270 { 1271 u32 reg_val, cam_line, search_non_ip_as_gft; 1272 struct regpair ram_line = { }; 1273 1274 if (!ipv6 && !ipv4) 1275 DP_NOTICE(p_hwfn, 1276 "gft_config: must accept at least on of - ipv4 or ipv6'\n"); 1277 if (!tcp && !udp) 1278 DP_NOTICE(p_hwfn, 1279 "gft_config: must accept at least on of - udp or tcp\n"); 1280 if (profile_type >= MAX_GFT_PROFILE_TYPE) 1281 DP_NOTICE(p_hwfn, "gft_config: unsupported gft_profile_type\n"); 1282 1283 /* Set RFS event ID to be awakened i Tstorm By Prs */ 1284 reg_val = T_ETH_PACKET_MATCH_RFS_EVENTID << 1285 PRS_REG_CM_HDR_GFT_EVENT_ID_SHIFT; 1286 reg_val |= PARSER_ETH_CONN_CM_HDR << PRS_REG_CM_HDR_GFT_CM_HDR_SHIFT; 1287 qed_wr(p_hwfn, p_ptt, PRS_REG_CM_HDR_GFT, reg_val); 1288 1289 /* Do not load context only cid in PRS on match. */ 1290 qed_wr(p_hwfn, p_ptt, PRS_REG_LOAD_L2_FILTER, 0); 1291 1292 /* Do not use tenant ID exist bit for gft search */ 1293 qed_wr(p_hwfn, p_ptt, PRS_REG_SEARCH_TENANT_ID, 0); 1294 1295 /* Set Cam */ 1296 cam_line = 0; 1297 SET_FIELD(cam_line, GFT_CAM_LINE_MAPPED_VALID, 1); 1298 1299 /* Filters are per PF!! */ 1300 SET_FIELD(cam_line, 1301 GFT_CAM_LINE_MAPPED_PF_ID_MASK, 1302 GFT_CAM_LINE_MAPPED_PF_ID_MASK_MASK); 1303 SET_FIELD(cam_line, GFT_CAM_LINE_MAPPED_PF_ID, pf_id); 1304 1305 if (!(tcp && udp)) { 1306 SET_FIELD(cam_line, 1307 GFT_CAM_LINE_MAPPED_UPPER_PROTOCOL_TYPE_MASK, 1308 GFT_CAM_LINE_MAPPED_UPPER_PROTOCOL_TYPE_MASK_MASK); 1309 if (tcp) 1310 SET_FIELD(cam_line, 1311 GFT_CAM_LINE_MAPPED_UPPER_PROTOCOL_TYPE, 1312 GFT_PROFILE_TCP_PROTOCOL); 1313 else 1314 SET_FIELD(cam_line, 1315 GFT_CAM_LINE_MAPPED_UPPER_PROTOCOL_TYPE, 1316 GFT_PROFILE_UDP_PROTOCOL); 1317 } 1318 1319 if (!(ipv4 && ipv6)) { 1320 SET_FIELD(cam_line, GFT_CAM_LINE_MAPPED_IP_VERSION_MASK, 1); 1321 if (ipv4) 1322 SET_FIELD(cam_line, 1323 GFT_CAM_LINE_MAPPED_IP_VERSION, 1324 GFT_PROFILE_IPV4); 1325 else 1326 SET_FIELD(cam_line, 1327 GFT_CAM_LINE_MAPPED_IP_VERSION, 1328 GFT_PROFILE_IPV6); 1329 } 1330 1331 /* Write characteristics to cam */ 1332 qed_wr(p_hwfn, p_ptt, PRS_REG_GFT_CAM + CAM_LINE_SIZE * pf_id, 1333 cam_line); 1334 cam_line = 1335 qed_rd(p_hwfn, p_ptt, PRS_REG_GFT_CAM + CAM_LINE_SIZE * pf_id); 1336 1337 /* Write line to RAM - compare to filter 4 tuple */ 1338 1339 /* Search no IP as GFT */ 1340 search_non_ip_as_gft = 0; 1341 1342 /* Tunnel type */ 1343 SET_FIELD(ram_line.lo, GFT_RAM_LINE_TUNNEL_DST_PORT, 1); 1344 SET_FIELD(ram_line.lo, GFT_RAM_LINE_TUNNEL_OVER_IP_PROTOCOL, 1); 1345 1346 if (profile_type == GFT_PROFILE_TYPE_4_TUPLE) { 1347 SET_FIELD(ram_line.hi, GFT_RAM_LINE_DST_IP, 1); 1348 SET_FIELD(ram_line.hi, GFT_RAM_LINE_SRC_IP, 1); 1349 SET_FIELD(ram_line.hi, GFT_RAM_LINE_OVER_IP_PROTOCOL, 1); 1350 SET_FIELD(ram_line.lo, GFT_RAM_LINE_ETHERTYPE, 1); 1351 SET_FIELD(ram_line.lo, GFT_RAM_LINE_SRC_PORT, 1); 1352 SET_FIELD(ram_line.lo, GFT_RAM_LINE_DST_PORT, 1); 1353 } else if (profile_type == GFT_PROFILE_TYPE_L4_DST_PORT) { 1354 SET_FIELD(ram_line.hi, GFT_RAM_LINE_OVER_IP_PROTOCOL, 1); 1355 SET_FIELD(ram_line.lo, GFT_RAM_LINE_ETHERTYPE, 1); 1356 SET_FIELD(ram_line.lo, GFT_RAM_LINE_DST_PORT, 1); 1357 } else if (profile_type == GFT_PROFILE_TYPE_IP_DST_ADDR) { 1358 SET_FIELD(ram_line.hi, GFT_RAM_LINE_DST_IP, 1); 1359 SET_FIELD(ram_line.lo, GFT_RAM_LINE_ETHERTYPE, 1); 1360 } else if (profile_type == GFT_PROFILE_TYPE_IP_SRC_ADDR) { 1361 SET_FIELD(ram_line.hi, GFT_RAM_LINE_SRC_IP, 1); 1362 SET_FIELD(ram_line.lo, GFT_RAM_LINE_ETHERTYPE, 1); 1363 } else if (profile_type == GFT_PROFILE_TYPE_TUNNEL_TYPE) { 1364 SET_FIELD(ram_line.lo, GFT_RAM_LINE_TUNNEL_ETHERTYPE, 1); 1365 1366 /* Allow tunneled traffic without inner IP */ 1367 search_non_ip_as_gft = 1; 1368 } 1369 1370 qed_wr(p_hwfn, 1371 p_ptt, PRS_REG_SEARCH_NON_IP_AS_GFT, search_non_ip_as_gft); 1372 qed_dmae_to_grc(p_hwfn, p_ptt, (u32 *)&ram_line, 1373 PRS_REG_GFT_PROFILE_MASK_RAM + RAM_LINE_SIZE * pf_id, 1374 sizeof(ram_line) / REG_SIZE); 1375 1376 /* Set default profile so that no filter match will happen */ > 1377 ram_line.lo = 0xffffffff; > 1378 ram_line.hi = 0x3ff; 1379 qed_dmae_to_grc(p_hwfn, p_ptt, (u32 *)&ram_line, 1380 PRS_REG_GFT_PROFILE_MASK_RAM + RAM_LINE_SIZE * 1381 PRS_GFT_CAM_LINES_NO_MATCH, 1382 sizeof(ram_line) / REG_SIZE); 1383 1384 /* Enable gft search */ 1385 qed_wr(p_hwfn, p_ptt, PRS_REG_SEARCH_GFT, 1); 1386 } 1387 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-...@lists.01.org
.config.gz
Description: application/gzip