Hi Lorenzo, kernel test robot noticed the following build warnings: [auto build test WARNING on net-next/main] url: https://github.com/intel-lab-lkp/linux/commits/Lorenzo-Bianconi/dt-bindings-net-airoha-Add-EN7581-ethernet-controller/20240618-182217 base: net-next/main patch link: https://lore.kernel.org/r/f146a6f58492394a77f7d159f3c650a268fbe489.1718696209.git.lorenzo%40kernel.org patch subject: [PATCH v2 net-next 2/2] net: airoha: Introduce ethernet support for EN7581 SoC config: arm64-randconfig-r121-20240623 (https://download.01.org/0day-ci/archive/20240624/202406242337.21CXNZvT-lkp@xxxxxxxxx/config) compiler: clang version 19.0.0git (https://github.com/llvm/llvm-project ad79a14c9e5ec4a369eed4adf567c22cc029863f) reproduce: (https://download.01.org/0day-ci/archive/20240624/202406242337.21CXNZvT-lkp@xxxxxxxxx/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 | Reported-by: kernel test robot <lkp@xxxxxxxxx> | Closes: https://lore.kernel.org/oe-kbuild-all/202406242337.21CXNZvT-lkp@xxxxxxxxx/ sparse warnings: (new ones prefixed by >>) >> drivers/net/ethernet/mediatek/airoha_eth.c:1328:45: sparse: sparse: incorrect type in assignment (different base types) @@ expected restricted __sum16 [usertype] check @@ got restricted __be16 [usertype] @@ drivers/net/ethernet/mediatek/airoha_eth.c:1328:45: sparse: expected restricted __sum16 [usertype] check drivers/net/ethernet/mediatek/airoha_eth.c:1328:45: sparse: got restricted __be16 [usertype] >> drivers/net/ethernet/mediatek/airoha_eth.c:1787:27: sparse: sparse: symbol 'of_airoha_match' was not declared. Should it be static? vim +1328 drivers/net/ethernet/mediatek/airoha_eth.c 1303 1304 static netdev_tx_t airoha_dev_xmit(struct sk_buff *skb, 1305 struct net_device *dev) 1306 { 1307 struct skb_shared_info *sinfo = skb_shinfo(skb); 1308 struct airoha_eth *eth = netdev_priv(dev); 1309 int i, qid = skb_get_queue_mapping(skb); 1310 u32 nr_frags, msg0 = 0, msg1; 1311 u32 len = skb_headlen(skb); 1312 struct netdev_queue *txq; 1313 struct airoha_queue *q; 1314 void *data = skb->data; 1315 u16 index; 1316 1317 if (skb->ip_summed == CHECKSUM_PARTIAL) 1318 msg0 |= FIELD_PREP(QDMA_ETH_TXMSG_TCO_MASK, 1) | 1319 FIELD_PREP(QDMA_ETH_TXMSG_UCO_MASK, 1) | 1320 FIELD_PREP(QDMA_ETH_TXMSG_ICO_MASK, 1); 1321 1322 /* TSO: fill MSS info in tcp checksum field */ 1323 if (skb_is_gso(skb)) { 1324 if (skb_cow_head(skb, 0)) 1325 goto error; 1326 1327 if (sinfo->gso_type & (SKB_GSO_TCPV4 | SKB_GSO_TCPV6)) { > 1328 tcp_hdr(skb)->check = cpu_to_be16(sinfo->gso_size); 1329 msg0 |= FIELD_PREP(QDMA_ETH_TXMSG_TSO_MASK, 1); 1330 } 1331 } 1332 1333 msg1 = FIELD_PREP(QDMA_ETH_TXMSG_FPORT_MASK, DPORT_GDM1) | 1334 FIELD_PREP(QDMA_ETH_TXMSG_METER_MASK, 0x7f); 1335 1336 if (WARN_ON_ONCE(qid >= ARRAY_SIZE(eth->q_tx))) 1337 qid = 0; 1338 1339 q = ð->q_tx[qid]; 1340 if (WARN_ON_ONCE(!q->ndesc)) 1341 goto error; 1342 1343 spin_lock_bh(&q->lock); 1344 1345 nr_frags = 1 + sinfo->nr_frags; 1346 if (q->queued + nr_frags > q->ndesc) { 1347 /* not enough space in the queue */ 1348 spin_unlock_bh(&q->lock); 1349 return NETDEV_TX_BUSY; 1350 } 1351 1352 index = q->head; 1353 for (i = 0; i < nr_frags; i++) { 1354 struct airoha_qdma_desc *desc = &q->desc[index]; 1355 struct airoha_queue_entry *e = &q->entry[index]; 1356 skb_frag_t *frag = &sinfo->frags[i]; 1357 dma_addr_t addr; 1358 u32 val; 1359 1360 addr = dma_map_single(dev->dev.parent, data, len, 1361 DMA_TO_DEVICE); 1362 if (unlikely(dma_mapping_error(dev->dev.parent, addr))) 1363 goto error_unmap; 1364 1365 index = (index + 1) % q->ndesc; 1366 1367 val = FIELD_PREP(QDMA_DESC_LEN_MASK, len); 1368 if (i < nr_frags - 1) 1369 val |= FIELD_PREP(QDMA_DESC_MORE_MASK, 1); 1370 WRITE_ONCE(desc->ctrl, cpu_to_le32(val)); 1371 WRITE_ONCE(desc->addr, cpu_to_le32(addr)); 1372 val = FIELD_PREP(QDMA_DESC_NEXT_ID_MASK, index); 1373 WRITE_ONCE(desc->data, cpu_to_le32(val)); 1374 WRITE_ONCE(desc->msg0, cpu_to_le32(msg0)); 1375 WRITE_ONCE(desc->msg1, cpu_to_le32(msg1)); 1376 WRITE_ONCE(desc->msg2, cpu_to_le32(0xffff)); 1377 1378 e->skb = i ? NULL : skb; 1379 e->dma_addr = addr; 1380 e->dma_len = len; 1381 1382 wmb(); 1383 airoha_qdma_rmw(eth, REG_TX_CPU_IDX(qid), TX_RING_CPU_IDX_MASK, 1384 FIELD_PREP(TX_RING_CPU_IDX_MASK, index)); 1385 1386 data = skb_frag_address(frag); 1387 len = skb_frag_size(frag); 1388 } 1389 1390 q->head = index; 1391 q->queued += i; 1392 1393 txq = netdev_get_tx_queue(dev, qid); 1394 netdev_tx_sent_queue(txq, skb->len); 1395 skb_tx_timestamp(skb); 1396 1397 if (q->ndesc - q->queued < q->free_thr) 1398 netif_tx_stop_queue(txq); 1399 1400 spin_unlock_bh(&q->lock); 1401 1402 return NETDEV_TX_OK; 1403 1404 error_unmap: 1405 for (i--; i >= 0; i++) 1406 dma_unmap_single(dev->dev.parent, q->entry[i].dma_addr, 1407 q->entry[i].dma_len, DMA_TO_DEVICE); 1408 1409 spin_unlock_bh(&q->lock); 1410 error: 1411 dev_kfree_skb_any(skb); 1412 dev->stats.tx_dropped++; 1413 1414 return NETDEV_TX_OK; 1415 } 1416 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki