Messages in this thread | | | Date | Fri, 7 Aug 2020 00:25:53 +0800 | From | kernel test robot <> | Subject | drivers/net/ethernet/xilinx/ll_temac_main.c:1410:64: sparse: sparse: Using plain integer as NULL pointer |
| |
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master head: 47ec5303d73ea344e84f46660fff693c57641386 commit: bd69058f50d5ffa659423bcfa6fe6280ce9c760a net: ll_temac: Use devm_platform_ioremap_resource_byname() date: 7 days ago config: sparc64-randconfig-s032-20200806 (attached as .config) compiler: sparc64-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-117-g8c7aee71-dirty git checkout bd69058f50d5ffa659423bcfa6fe6280ce9c760a # 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=sparc64
If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <lkp@intel.com>
sparse warnings: (new ones prefixed by >>)
drivers/net/ethernet/xilinx/ll_temac_main.c:356:37: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned int [usertype] next @@ got restricted __be32 [usertype] @@ drivers/net/ethernet/xilinx/ll_temac_main.c:356:37: sparse: expected unsigned int [usertype] next drivers/net/ethernet/xilinx/ll_temac_main.c:356:37: sparse: got restricted __be32 [usertype] drivers/net/ethernet/xilinx/ll_temac_main.c:361:37: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned int [usertype] next @@ got restricted __be32 [usertype] @@ drivers/net/ethernet/xilinx/ll_temac_main.c:361:37: sparse: expected unsigned int [usertype] next drivers/net/ethernet/xilinx/ll_temac_main.c:361:37: sparse: got restricted __be32 [usertype] drivers/net/ethernet/xilinx/ll_temac_main.c:376:37: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned int [usertype] phys @@ got restricted __be32 [usertype] @@ drivers/net/ethernet/xilinx/ll_temac_main.c:376:37: sparse: expected unsigned int [usertype] phys drivers/net/ethernet/xilinx/ll_temac_main.c:376:37: sparse: got restricted __be32 [usertype] drivers/net/ethernet/xilinx/ll_temac_main.c:377:36: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned int [usertype] len @@ got restricted __be32 [usertype] @@ drivers/net/ethernet/xilinx/ll_temac_main.c:377:36: sparse: expected unsigned int [usertype] len drivers/net/ethernet/xilinx/ll_temac_main.c:377:36: sparse: got restricted __be32 [usertype] drivers/net/ethernet/xilinx/ll_temac_main.c:378:37: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned int [usertype] app0 @@ got restricted __be32 [usertype] @@ drivers/net/ethernet/xilinx/ll_temac_main.c:378:37: sparse: expected unsigned int [usertype] app0 drivers/net/ethernet/xilinx/ll_temac_main.c:378:37: sparse: got restricted __be32 [usertype] drivers/net/ethernet/xilinx/ll_temac_main.c:774:16: sparse: sparse: cast to restricted __be32 drivers/net/ethernet/xilinx/ll_temac_main.c:777:17: sparse: sparse: cast to restricted __be32 drivers/net/ethernet/xilinx/ll_temac_main.c:777:17: sparse: sparse: cast to restricted __be32 drivers/net/ethernet/xilinx/ll_temac_main.c:789:41: sparse: sparse: cast to restricted __be32 drivers/net/ethernet/xilinx/ll_temac_main.c:796:24: sparse: sparse: cast to restricted __be32 drivers/net/ethernet/xilinx/ll_temac_main.c:863:29: sparse: sparse: invalid assignment: |= drivers/net/ethernet/xilinx/ll_temac_main.c:863:29: sparse: left side has type unsigned int drivers/net/ethernet/xilinx/ll_temac_main.c:863:29: sparse: right side has type restricted __be32 drivers/net/ethernet/xilinx/ll_temac_main.c:864:29: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned int [usertype] app1 @@ got restricted __be32 [usertype] @@ drivers/net/ethernet/xilinx/ll_temac_main.c:864:29: sparse: expected unsigned int [usertype] app1 drivers/net/ethernet/xilinx/ll_temac_main.c:864:29: sparse: got restricted __be32 [usertype] drivers/net/ethernet/xilinx/ll_temac_main.c:869:21: sparse: sparse: invalid assignment: |= drivers/net/ethernet/xilinx/ll_temac_main.c:869:21: sparse: left side has type unsigned int drivers/net/ethernet/xilinx/ll_temac_main.c:869:21: sparse: right side has type restricted __be32 drivers/net/ethernet/xilinx/ll_temac_main.c:872:20: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned int [usertype] len @@ got restricted __be32 [usertype] @@ drivers/net/ethernet/xilinx/ll_temac_main.c:872:20: sparse: expected unsigned int [usertype] len drivers/net/ethernet/xilinx/ll_temac_main.c:872:20: sparse: got restricted __be32 [usertype] drivers/net/ethernet/xilinx/ll_temac_main.c:878:21: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned int [usertype] phys @@ got restricted __be32 [usertype] @@ drivers/net/ethernet/xilinx/ll_temac_main.c:878:21: sparse: expected unsigned int [usertype] phys drivers/net/ethernet/xilinx/ll_temac_main.c:878:21: sparse: got restricted __be32 [usertype] drivers/net/ethernet/xilinx/ll_temac_main.c:896:33: sparse: sparse: cast to restricted __be32 drivers/net/ethernet/xilinx/ll_temac_main.c:904:25: sparse: sparse: cast to restricted __be32 drivers/net/ethernet/xilinx/ll_temac_main.c:911:29: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned int [usertype] phys @@ got restricted __be32 [usertype] @@ drivers/net/ethernet/xilinx/ll_temac_main.c:911:29: sparse: expected unsigned int [usertype] phys drivers/net/ethernet/xilinx/ll_temac_main.c:911:29: sparse: got restricted __be32 [usertype] drivers/net/ethernet/xilinx/ll_temac_main.c:912:28: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned int [usertype] len @@ got restricted __be32 [usertype] @@ drivers/net/ethernet/xilinx/ll_temac_main.c:912:28: sparse: expected unsigned int [usertype] len drivers/net/ethernet/xilinx/ll_temac_main.c:912:28: sparse: got restricted __be32 [usertype] drivers/net/ethernet/xilinx/ll_temac_main.c:916:21: sparse: sparse: invalid assignment: |= drivers/net/ethernet/xilinx/ll_temac_main.c:916:21: sparse: left side has type unsigned int drivers/net/ethernet/xilinx/ll_temac_main.c:916:21: sparse: right side has type restricted __be32 drivers/net/ethernet/xilinx/ll_temac_main.c:961:39: sparse: sparse: cast to restricted __be32 drivers/net/ethernet/xilinx/ll_temac_main.c:975:17: sparse: sparse: cast to restricted __be32 drivers/net/ethernet/xilinx/ll_temac_main.c:981:26: sparse: sparse: cast to restricted __be32 drivers/net/ethernet/xilinx/ll_temac_main.c:996:37: sparse: sparse: cast to restricted __be32 drivers/net/ethernet/xilinx/ll_temac_main.c:996:35: sparse: sparse: incorrect type in assignment (different base types) @@ expected restricted __wsum [usertype] csum @@ got restricted __be16 [usertype] @@ drivers/net/ethernet/xilinx/ll_temac_main.c:996:35: sparse: expected restricted __wsum [usertype] csum drivers/net/ethernet/xilinx/ll_temac_main.c:996:35: sparse: got restricted __be16 [usertype] drivers/net/ethernet/xilinx/ll_temac_main.c:1062:26: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned int [usertype] phys @@ got restricted __be32 [usertype] @@ drivers/net/ethernet/xilinx/ll_temac_main.c:1062:26: sparse: expected unsigned int [usertype] phys drivers/net/ethernet/xilinx/ll_temac_main.c:1062:26: sparse: got restricted __be32 [usertype] drivers/net/ethernet/xilinx/ll_temac_main.c:1063:25: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned int [usertype] len @@ got restricted __be32 [usertype] @@ drivers/net/ethernet/xilinx/ll_temac_main.c:1063:25: sparse: expected unsigned int [usertype] len drivers/net/ethernet/xilinx/ll_temac_main.c:1063:25: sparse: got restricted __be32 [usertype] drivers/net/ethernet/xilinx/ll_temac_main.c:1064:26: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned int [usertype] app0 @@ got restricted __be32 [usertype] @@ drivers/net/ethernet/xilinx/ll_temac_main.c:1064:26: sparse: expected unsigned int [usertype] app0 drivers/net/ethernet/xilinx/ll_temac_main.c:1064:26: sparse: got restricted __be32 [usertype] >> drivers/net/ethernet/xilinx/ll_temac_main.c:1410:64: sparse: sparse: Using plain integer as NULL pointer
vim +1410 drivers/net/ethernet/xilinx/ll_temac_main.c
1383 1384 /* setup temac private info structure */ 1385 lp = netdev_priv(ndev); 1386 lp->ndev = ndev; 1387 lp->dev = &pdev->dev; 1388 lp->options = XTE_OPTION_DEFAULTS; 1389 lp->rx_bd_num = RX_BD_NUM_DEFAULT; 1390 lp->tx_bd_num = TX_BD_NUM_DEFAULT; 1391 spin_lock_init(&lp->rx_lock); 1392 INIT_DELAYED_WORK(&lp->restart_work, ll_temac_restart_work_func); 1393 1394 /* Setup mutex for synchronization of indirect register access */ 1395 if (pdata) { 1396 if (!pdata->indirect_lock) { 1397 dev_err(&pdev->dev, 1398 "indirect_lock missing in platform_data\n"); 1399 return -EINVAL; 1400 } 1401 lp->indirect_lock = pdata->indirect_lock; 1402 } else { 1403 lp->indirect_lock = devm_kmalloc(&pdev->dev, 1404 sizeof(*lp->indirect_lock), 1405 GFP_KERNEL); 1406 spin_lock_init(lp->indirect_lock); 1407 } 1408 1409 /* map device registers */ > 1410 lp->regs = devm_platform_ioremap_resource_byname(pdev, 0); 1411 if (IS_ERR(lp->regs)) { 1412 dev_err(&pdev->dev, "could not map TEMAC registers\n"); 1413 return -ENOMEM; 1414 } 1415 1416 /* Select register access functions with the specified 1417 * endianness mode. Default for OF devices is big-endian. 1418 */ 1419 little_endian = false; 1420 if (temac_np) { 1421 if (of_get_property(temac_np, "little-endian", NULL)) 1422 little_endian = true; 1423 } else if (pdata) { 1424 little_endian = pdata->reg_little_endian; 1425 } 1426 if (little_endian) { 1427 lp->temac_ior = _temac_ior_le; 1428 lp->temac_iow = _temac_iow_le; 1429 } else { 1430 lp->temac_ior = _temac_ior_be; 1431 lp->temac_iow = _temac_iow_be; 1432 } 1433 1434 /* Setup checksum offload, but default to off if not specified */ 1435 lp->temac_features = 0; 1436 if (temac_np) { 1437 p = (__be32 *)of_get_property(temac_np, "xlnx,txcsum", NULL); 1438 if (p && be32_to_cpu(*p)) 1439 lp->temac_features |= TEMAC_FEATURE_TX_CSUM; 1440 p = (__be32 *)of_get_property(temac_np, "xlnx,rxcsum", NULL); 1441 if (p && be32_to_cpu(*p)) 1442 lp->temac_features |= TEMAC_FEATURE_RX_CSUM; 1443 } else if (pdata) { 1444 if (pdata->txcsum) 1445 lp->temac_features |= TEMAC_FEATURE_TX_CSUM; 1446 if (pdata->rxcsum) 1447 lp->temac_features |= TEMAC_FEATURE_RX_CSUM; 1448 } 1449 if (lp->temac_features & TEMAC_FEATURE_TX_CSUM) 1450 /* Can checksum TCP/UDP over IPv4. */ 1451 ndev->features |= NETIF_F_IP_CSUM; 1452 1453 /* Defaults for IRQ delay/coalescing setup. These are 1454 * configuration values, so does not belong in device-tree. 1455 */ 1456 lp->coalesce_delay_tx = 0x10; 1457 lp->coalesce_count_tx = 0x22; 1458 lp->coalesce_delay_rx = 0xff; 1459 lp->coalesce_count_rx = 0x07; 1460 1461 /* Setup LocalLink DMA */ 1462 if (temac_np) { 1463 /* Find the DMA node, map the DMA registers, and 1464 * decode the DMA IRQs. 1465 */ 1466 dma_np = of_parse_phandle(temac_np, "llink-connected", 0); 1467 if (!dma_np) { 1468 dev_err(&pdev->dev, "could not find DMA node\n"); 1469 return -ENODEV; 1470 } 1471 1472 /* Setup the DMA register accesses, could be DCR or 1473 * memory mapped. 1474 */ 1475 if (temac_dcr_setup(lp, pdev, dma_np)) { 1476 /* no DCR in the device tree, try non-DCR */ 1477 lp->sdma_regs = devm_of_iomap(&pdev->dev, dma_np, 0, 1478 NULL); 1479 if (IS_ERR(lp->sdma_regs)) { 1480 dev_err(&pdev->dev, 1481 "unable to map DMA registers\n"); 1482 of_node_put(dma_np); 1483 return PTR_ERR(lp->sdma_regs); 1484 } 1485 if (of_get_property(dma_np, "little-endian", NULL)) { 1486 lp->dma_in = temac_dma_in32_le; 1487 lp->dma_out = temac_dma_out32_le; 1488 } else { 1489 lp->dma_in = temac_dma_in32_be; 1490 lp->dma_out = temac_dma_out32_be; 1491 } 1492 dev_dbg(&pdev->dev, "MEM base: %p\n", lp->sdma_regs); 1493 } 1494 1495 /* Get DMA RX and TX interrupts */ 1496 lp->rx_irq = irq_of_parse_and_map(dma_np, 0); 1497 lp->tx_irq = irq_of_parse_and_map(dma_np, 1); 1498 1499 /* Finished with the DMA node; drop the reference */ 1500 of_node_put(dma_np); 1501 } else if (pdata) { 1502 /* 2nd memory resource specifies DMA registers */ 1503 res = platform_get_resource(pdev, IORESOURCE_MEM, 1); 1504 lp->sdma_regs = devm_ioremap(&pdev->dev, res->start, 1505 resource_size(res)); 1506 if (!lp->sdma_regs) { 1507 dev_err(&pdev->dev, 1508 "could not map DMA registers\n"); 1509 return -ENOMEM; 1510 } 1511 if (pdata->dma_little_endian) { 1512 lp->dma_in = temac_dma_in32_le; 1513 lp->dma_out = temac_dma_out32_le; 1514 } else { 1515 lp->dma_in = temac_dma_in32_be; 1516 lp->dma_out = temac_dma_out32_be; 1517 } 1518 1519 /* Get DMA RX and TX interrupts */ 1520 lp->rx_irq = platform_get_irq(pdev, 0); 1521 lp->tx_irq = platform_get_irq(pdev, 1); 1522 1523 /* IRQ delay/coalescing setup */ 1524 if (pdata->tx_irq_timeout || pdata->tx_irq_count) { 1525 lp->coalesce_delay_tx = pdata->tx_irq_timeout; 1526 lp->coalesce_count_tx = pdata->tx_irq_count; 1527 } 1528 if (pdata->rx_irq_timeout || pdata->rx_irq_count) { 1529 lp->coalesce_delay_rx = pdata->rx_irq_timeout; 1530 lp->coalesce_count_rx = pdata->rx_irq_count; 1531 } 1532 } 1533 1534 /* Error handle returned DMA RX and TX interrupts */ 1535 if (lp->rx_irq < 0) { 1536 if (lp->rx_irq != -EPROBE_DEFER) 1537 dev_err(&pdev->dev, "could not get DMA RX irq\n"); 1538 return lp->rx_irq; 1539 } 1540 if (lp->tx_irq < 0) { 1541 if (lp->tx_irq != -EPROBE_DEFER) 1542 dev_err(&pdev->dev, "could not get DMA TX irq\n"); 1543 return lp->tx_irq; 1544 } 1545 1546 if (temac_np) { 1547 /* Retrieve the MAC address */ 1548 addr = of_get_mac_address(temac_np); 1549 if (IS_ERR(addr)) { 1550 dev_err(&pdev->dev, "could not find MAC address\n"); 1551 return -ENODEV; 1552 } 1553 temac_init_mac_address(ndev, addr); 1554 } else if (pdata) { 1555 temac_init_mac_address(ndev, pdata->mac_addr); 1556 } 1557 1558 rc = temac_mdio_setup(lp, pdev); 1559 if (rc) 1560 dev_warn(&pdev->dev, "error registering MDIO bus\n"); 1561 1562 if (temac_np) { 1563 lp->phy_node = of_parse_phandle(temac_np, "phy-handle", 0); 1564 if (lp->phy_node) 1565 dev_dbg(lp->dev, "using PHY node %pOF\n", temac_np); 1566 } else if (pdata) { 1567 snprintf(lp->phy_name, sizeof(lp->phy_name), 1568 PHY_ID_FMT, lp->mii_bus->id, pdata->phy_addr); 1569 lp->phy_interface = pdata->phy_interface; 1570 } 1571 1572 /* Add the device attributes */ 1573 rc = sysfs_create_group(&lp->dev->kobj, &temac_attr_group); 1574 if (rc) { 1575 dev_err(lp->dev, "Error creating sysfs files\n"); 1576 goto err_sysfs_create; 1577 } 1578 1579 rc = register_netdev(lp->ndev); 1580 if (rc) { 1581 dev_err(lp->dev, "register_netdev() error (%i)\n", rc); 1582 goto err_register_ndev; 1583 } 1584 1585 return 0; 1586 1587 err_register_ndev: 1588 sysfs_remove_group(&lp->dev->kobj, &temac_attr_group); 1589 err_sysfs_create: 1590 if (lp->phy_node) 1591 of_node_put(lp->phy_node); 1592 temac_mdio_teardown(lp); 1593 return rc; 1594 } 1595
--- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org [unhandled content-type:application/gzip] | |