* drivers/net/ethernet/stmicro/stmmac/stmmac_selftests.c:1494:24: sparse: sparse: incorrect type in assignment (different base types)
@ 2026-11-01 4:11 kernel test robot
0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2026-11-01 4:11 UTC (permalink / raw)
To: Maxime Chevallier; +Cc: oe-kbuild-all, linux-kernel, Paolo Abeni, Andrew Lunn
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: cbbddb6b08cc9900a87cccaa9b22bbe06aa4f50a
commit: 9a56a27e6002e29a6707dc4238d469ec84c3a68e net: stmmac: selftests: Pass the IP proto mask in the TC selftest
date: 9 weeks ago
config: hexagon-randconfig-r2309-20261101 (https://download.01.org/0day-ci/archive/20261101/202611010511.Mk620DTd-lkp@intel.com/config)
compiler: clang version 24.0.0git (https://github.com/llvm/llvm-project 8f6b51ca8bab1d49006ddaa042bc7e4e7306975d)
sparse: v0.6.5-rc1-21-g84ec0658
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20261101/202611010511.Mk620DTd-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Fixes: 9a56a27e6002 ("net: stmmac: selftests: Pass the IP proto mask in the TC selftest")
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202611010511.Mk620DTd-lkp@intel.com/
sparse warnings: (new ones prefixed by >>)
drivers/net/ethernet/stmicro/stmmac/stmmac_selftests.c:1118: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:1118:27: sparse: expected restricted __be32 [usertype] mask
drivers/net/ethernet/stmicro/stmmac/stmmac_selftests.c:1118:27: sparse: got int
drivers/net/ethernet/stmicro/stmmac/stmmac_selftests.c:1363: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:1363:18: sparse: expected restricted __be32 [addressable] [usertype] src
drivers/net/ethernet/stmicro/stmmac/stmmac_selftests.c:1363:18: sparse: got unsigned int [usertype] src_mask
drivers/net/ethernet/stmicro/stmmac/stmmac_selftests.c:1364: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:1364:18: sparse: expected restricted __be32 [addressable] [usertype] dst
drivers/net/ethernet/stmicro/stmmac/stmmac_selftests.c:1364:18: sparse: got unsigned int [usertype] dst_mask
>> drivers/net/ethernet/stmicro/stmmac/stmmac_selftests.c:1494:24: sparse: sparse: incorrect type in assignment (different base types) @@ expected restricted __be16 [addressable] [assigned] [usertype] src @@ got unsigned int [usertype] src_mask @@
drivers/net/ethernet/stmicro/stmmac/stmmac_selftests.c:1494:24: sparse: expected restricted __be16 [addressable] [assigned] [usertype] src
drivers/net/ethernet/stmicro/stmmac/stmmac_selftests.c:1494:24: sparse: got unsigned int [usertype] src_mask
>> drivers/net/ethernet/stmicro/stmmac/stmmac_selftests.c:1495:24: sparse: sparse: incorrect type in assignment (different base types) @@ expected restricted __be16 [addressable] [assigned] [usertype] dst @@ got unsigned int [usertype] dst_mask @@
drivers/net/ethernet/stmicro/stmmac/stmmac_selftests.c:1495:24: sparse: expected restricted __be16 [addressable] [assigned] [usertype] dst
drivers/net/ethernet/stmicro/stmmac/stmmac_selftests.c:1495:24: sparse: got unsigned int [usertype] dst_mask
vim +1494 drivers/net/ethernet/stmicro/stmmac/stmmac_selftests.c
4647e021193d63 Jose Abreu 2019-09-04 1427
4647e021193d63 Jose Abreu 2019-09-04 1428 #ifdef CONFIG_NET_CLS_ACT
4647e021193d63 Jose Abreu 2019-09-04 1429 static int __stmmac_test_l4filt(struct stmmac_priv *priv, u32 dst, u32 src,
4647e021193d63 Jose Abreu 2019-09-04 1430 u32 dst_mask, u32 src_mask, bool udp)
4647e021193d63 Jose Abreu 2019-09-04 1431 {
4647e021193d63 Jose Abreu 2019-09-04 1432 struct {
4647e021193d63 Jose Abreu 2019-09-04 1433 struct flow_dissector_key_basic bkey;
4647e021193d63 Jose Abreu 2019-09-04 1434 struct flow_dissector_key_ports key;
9a56a27e6002e2 Maxime Chevallier 2026-08-25 1435 } __aligned(BITS_PER_LONG / 8) keys = { };
4647e021193d63 Jose Abreu 2019-09-04 1436 struct {
4647e021193d63 Jose Abreu 2019-09-04 1437 struct flow_dissector_key_basic bmask;
4647e021193d63 Jose Abreu 2019-09-04 1438 struct flow_dissector_key_ports mask;
9a56a27e6002e2 Maxime Chevallier 2026-08-25 1439 } __aligned(BITS_PER_LONG / 8) masks = { };
4647e021193d63 Jose Abreu 2019-09-04 1440 unsigned long dummy_cookie = 0xdeadbeef;
4647e021193d63 Jose Abreu 2019-09-04 1441 struct stmmac_packet_attrs attr = { };
4647e021193d63 Jose Abreu 2019-09-04 1442 struct flow_dissector *dissector;
4647e021193d63 Jose Abreu 2019-09-04 1443 struct flow_cls_offload *cls;
e715d745043529 Jose Abreu 2020-01-10 1444 int ret, old_enable = 0;
4647e021193d63 Jose Abreu 2019-09-04 1445 struct flow_rule *rule;
4647e021193d63 Jose Abreu 2019-09-04 1446
4647e021193d63 Jose Abreu 2019-09-04 1447 if (!tc_can_offload(priv->dev))
4647e021193d63 Jose Abreu 2019-09-04 1448 return -EOPNOTSUPP;
4647e021193d63 Jose Abreu 2019-09-04 1449 if (!priv->dma_cap.l3l4fnum)
4647e021193d63 Jose Abreu 2019-09-04 1450 return -EOPNOTSUPP;
e715d745043529 Jose Abreu 2020-01-10 1451 if (priv->rss.enable) {
e715d745043529 Jose Abreu 2020-01-10 1452 old_enable = priv->rss.enable;
e715d745043529 Jose Abreu 2020-01-10 1453 priv->rss.enable = false;
b6b6cc9acd7b99 Arnd Bergmann 2019-09-19 1454 stmmac_rss_configure(priv, priv->hw, NULL,
4647e021193d63 Jose Abreu 2019-09-04 1455 priv->plat->rx_queues_to_use);
e715d745043529 Jose Abreu 2020-01-10 1456 }
4647e021193d63 Jose Abreu 2019-09-04 1457
bf4afc53b77aea Linus Torvalds 2026-02-21 1458 dissector = kzalloc_obj(*dissector);
4647e021193d63 Jose Abreu 2019-09-04 1459 if (!dissector) {
4647e021193d63 Jose Abreu 2019-09-04 1460 ret = -ENOMEM;
4647e021193d63 Jose Abreu 2019-09-04 1461 goto cleanup_rss;
4647e021193d63 Jose Abreu 2019-09-04 1462 }
4647e021193d63 Jose Abreu 2019-09-04 1463
2b3082c6ef3b01 Ratheesh Kannoth 2023-07-29 1464 dissector->used_keys |= (1ULL << FLOW_DISSECTOR_KEY_BASIC);
2b3082c6ef3b01 Ratheesh Kannoth 2023-07-29 1465 dissector->used_keys |= (1ULL << FLOW_DISSECTOR_KEY_PORTS);
4647e021193d63 Jose Abreu 2019-09-04 1466 dissector->offset[FLOW_DISSECTOR_KEY_BASIC] = 0;
4647e021193d63 Jose Abreu 2019-09-04 1467 dissector->offset[FLOW_DISSECTOR_KEY_PORTS] = offsetof(typeof(keys), key);
4647e021193d63 Jose Abreu 2019-09-04 1468
bf4afc53b77aea Linus Torvalds 2026-02-21 1469 cls = kzalloc_obj(*cls);
4647e021193d63 Jose Abreu 2019-09-04 1470 if (!cls) {
4647e021193d63 Jose Abreu 2019-09-04 1471 ret = -ENOMEM;
4647e021193d63 Jose Abreu 2019-09-04 1472 goto cleanup_dissector;
4647e021193d63 Jose Abreu 2019-09-04 1473 }
4647e021193d63 Jose Abreu 2019-09-04 1474
4647e021193d63 Jose Abreu 2019-09-04 1475 cls->common.chain_index = 0;
4647e021193d63 Jose Abreu 2019-09-04 1476 cls->command = FLOW_CLS_REPLACE;
4647e021193d63 Jose Abreu 2019-09-04 1477 cls->cookie = dummy_cookie;
4647e021193d63 Jose Abreu 2019-09-04 1478
323bbfcf1ef883 Linus Torvalds 2026-02-21 1479 rule = kzalloc_flex(*rule, action.entries, 1);
4647e021193d63 Jose Abreu 2019-09-04 1480 if (!rule) {
4647e021193d63 Jose Abreu 2019-09-04 1481 ret = -ENOMEM;
4647e021193d63 Jose Abreu 2019-09-04 1482 goto cleanup_cls;
4647e021193d63 Jose Abreu 2019-09-04 1483 }
4647e021193d63 Jose Abreu 2019-09-04 1484
4647e021193d63 Jose Abreu 2019-09-04 1485 rule->match.dissector = dissector;
4647e021193d63 Jose Abreu 2019-09-04 1486 rule->match.key = (void *)&keys;
4647e021193d63 Jose Abreu 2019-09-04 1487 rule->match.mask = (void *)&masks;
4647e021193d63 Jose Abreu 2019-09-04 1488
4647e021193d63 Jose Abreu 2019-09-04 1489 keys.bkey.ip_proto = udp ? IPPROTO_UDP : IPPROTO_TCP;
4647e021193d63 Jose Abreu 2019-09-04 1490 keys.key.src = htons(src);
4647e021193d63 Jose Abreu 2019-09-04 1491 keys.key.dst = htons(dst);
9a56a27e6002e2 Maxime Chevallier 2026-08-25 1492 /* Match the full IP proto field */
9a56a27e6002e2 Maxime Chevallier 2026-08-25 1493 masks.bmask.ip_proto = 0xff;
4647e021193d63 Jose Abreu 2019-09-04 @1494 masks.mask.src = src_mask;
4647e021193d63 Jose Abreu 2019-09-04 @1495 masks.mask.dst = dst_mask;
4647e021193d63 Jose Abreu 2019-09-04 1496
4647e021193d63 Jose Abreu 2019-09-04 1497 cls->rule = rule;
4647e021193d63 Jose Abreu 2019-09-04 1498
4647e021193d63 Jose Abreu 2019-09-04 1499 rule->action.entries[0].id = FLOW_ACTION_DROP;
0dfb2d82af4cd7 Jakub Kicinski 2020-03-19 1500 rule->action.entries[0].hw_stats = FLOW_ACTION_HW_STATS_ANY;
4647e021193d63 Jose Abreu 2019-09-04 1501 rule->action.num_entries = 1;
4647e021193d63 Jose Abreu 2019-09-04 1502
4647e021193d63 Jose Abreu 2019-09-04 1503 attr.dst = priv->dev->dev_addr;
4647e021193d63 Jose Abreu 2019-09-04 1504 attr.tcp = !udp;
4647e021193d63 Jose Abreu 2019-09-04 1505 attr.sport = src;
4647e021193d63 Jose Abreu 2019-09-04 1506 attr.dport = dst;
4647e021193d63 Jose Abreu 2019-09-04 1507 attr.ip_dst = 0;
4647e021193d63 Jose Abreu 2019-09-04 1508
4647e021193d63 Jose Abreu 2019-09-04 1509 /* Shall receive packet */
4647e021193d63 Jose Abreu 2019-09-04 1510 ret = __stmmac_test_loopback(priv, &attr);
4647e021193d63 Jose Abreu 2019-09-04 1511 if (ret)
4647e021193d63 Jose Abreu 2019-09-04 1512 goto cleanup_rule;
4647e021193d63 Jose Abreu 2019-09-04 1513
4647e021193d63 Jose Abreu 2019-09-04 1514 ret = stmmac_tc_setup_cls(priv, priv, cls);
4647e021193d63 Jose Abreu 2019-09-04 1515 if (ret)
4647e021193d63 Jose Abreu 2019-09-04 1516 goto cleanup_rule;
4647e021193d63 Jose Abreu 2019-09-04 1517
4647e021193d63 Jose Abreu 2019-09-04 1518 /* Shall NOT receive packet */
4647e021193d63 Jose Abreu 2019-09-04 1519 ret = __stmmac_test_loopback(priv, &attr);
4647e021193d63 Jose Abreu 2019-09-04 1520 ret = ret ? 0 : -EINVAL;
4647e021193d63 Jose Abreu 2019-09-04 1521
4647e021193d63 Jose Abreu 2019-09-04 1522 cls->command = FLOW_CLS_DESTROY;
4647e021193d63 Jose Abreu 2019-09-04 1523 stmmac_tc_setup_cls(priv, priv, cls);
4647e021193d63 Jose Abreu 2019-09-04 1524 cleanup_rule:
4647e021193d63 Jose Abreu 2019-09-04 1525 kfree(rule);
4647e021193d63 Jose Abreu 2019-09-04 1526 cleanup_cls:
4647e021193d63 Jose Abreu 2019-09-04 1527 kfree(cls);
4647e021193d63 Jose Abreu 2019-09-04 1528 cleanup_dissector:
4647e021193d63 Jose Abreu 2019-09-04 1529 kfree(dissector);
4647e021193d63 Jose Abreu 2019-09-04 1530 cleanup_rss:
e715d745043529 Jose Abreu 2020-01-10 1531 if (old_enable) {
e715d745043529 Jose Abreu 2020-01-10 1532 priv->rss.enable = old_enable;
4647e021193d63 Jose Abreu 2019-09-04 1533 stmmac_rss_configure(priv, priv->hw, &priv->rss,
4647e021193d63 Jose Abreu 2019-09-04 1534 priv->plat->rx_queues_to_use);
4647e021193d63 Jose Abreu 2019-09-04 1535 }
4647e021193d63 Jose Abreu 2019-09-04 1536
4647e021193d63 Jose Abreu 2019-09-04 1537 return ret;
4647e021193d63 Jose Abreu 2019-09-04 1538 }
4647e021193d63 Jose Abreu 2019-09-04 1539 #else
4647e021193d63 Jose Abreu 2019-09-04 1540 static int __stmmac_test_l4filt(struct stmmac_priv *priv, u32 dst, u32 src,
4647e021193d63 Jose Abreu 2019-09-04 1541 u32 dst_mask, u32 src_mask, bool udp)
4647e021193d63 Jose Abreu 2019-09-04 1542 {
4647e021193d63 Jose Abreu 2019-09-04 1543 return -EOPNOTSUPP;
4647e021193d63 Jose Abreu 2019-09-04 1544 }
4647e021193d63 Jose Abreu 2019-09-04 1545 #endif
4647e021193d63 Jose Abreu 2019-09-04 1546
:::::: The code at line 1494 was first introduced by commit
:::::: 4647e021193d638d3c87d1f1b9a5f7f7a48f36a3 net: stmmac: selftests: Add selftest for L3/L4 Filters
:::::: TO: Jose Abreu <Jose.Abreu@synopsys.com>
:::::: CC: David S. Miller <davem@davemloft.net>
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2026-11-01 4:12 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-11-01 4:11 drivers/net/ethernet/stmicro/stmmac/stmmac_selftests.c:1494:24: sparse: sparse: incorrect type in assignment (different base types) kernel 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.