Subject: Re: [PATCH net-next v4 1/5] net: ipqess: introduce the Qualcomm IPQESS driver

From: kernel test robot <[email-masked]>
Date: Mon, 12 Sep 2022 06:11:04 +0800

Hi Maxime,

I love your patch! Yet something to improve:

[auto build test ERROR on net-next/master]

url:    https://github.com/intel-lab-lkp/linux/commits/Maxime-Chevallier/net-ipqess-introduce-Qualcomm-IPQESS-driver/20220909-232946
base:   https://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git 169ccf0e40825d9e465863e4707d8e8546d3c3cb
config: xtensa-allyesconfig (https://download.01.org/0day-ci/archive/20220912/[email-masked]/config)
compiler: xtensa-linux-gcc (GCC) 12.1.0
reproduce (this is a W=1 build):
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # https://github.com/intel-lab-lkp/linux/commit/0f2d032fe80cfabb7db162b9c19ed6e23077baeb
        git remote add linux-review https://github.com/intel-lab-lkp/linux
        git fetch --no-tags linux-review Maxime-Chevallier/net-ipqess-introduce-Qualcomm-IPQESS-driver/20220909-232946
        git checkout 0f2d032fe80cfabb7db162b9c19ed6e23077baeb
        # save the config file
        mkdir build_dir && cp config build_dir/.config
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross W=1 O=build_dir ARCH=xtensa SHELL=/bin/bash

If you fix the issue, kindly add following tag where applicable
Reported-by: kernel test robot <[email-masked]>

All errors (new ones prefixed by >>):

   drivers/net/ethernet/qualcomm/ipqess/ipqess.c: In function 'ipqess_axi_probe':
>> drivers/net/ethernet/qualcomm/ipqess/ipqess.c:1191:17: error: implicit declaration of function 'netif_tx_napi_add'; did you mean 'netif_napi_add'? [-Werror=implicit-function-declaration]
    1191 |                 netif_tx_napi_add(netdev, &ess->tx_ring[i].napi_tx,
         |                 ^~~~~~~~~~~~~~~~~
         |                 netif_napi_add
   cc1: some warnings being treated as errors

vim +1191 drivers/net/ethernet/qualcomm/ipqess/ipqess.c

  1097	
  1098	static int ipqess_axi_probe(struct platform_device *pdev)
  1099	{
  1100		struct device_node *np = pdev->dev.of_node;
  1101		struct net_device *netdev;
  1102		phy_interface_t phy_mode;
  1103		struct resource *res;
  1104		struct ipqess *ess;
  1105		int i, err = 0;
  1106	
  1107		netdev = devm_alloc_etherdev_mqs(&pdev->dev, sizeof(struct ipqess),
  1108						 IPQESS_NETDEV_QUEUES,
  1109						 IPQESS_NETDEV_QUEUES);
  1110		if (!netdev)
  1111			return -ENOMEM;
  1112	
  1113		ess = netdev_priv(netdev);
  1114		ess->netdev = netdev;
  1115		ess->pdev = pdev;
  1116		spin_lock_init(&ess->stats_lock);
  1117		SET_NETDEV_DEV(netdev, &pdev->dev);
  1118		platform_set_drvdata(pdev, netdev);
  1119	
  1120		res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
  1121		ess->hw_addr = devm_ioremap_resource(&pdev->dev, res);
  1122		if (IS_ERR(ess->hw_addr))
  1123			return PTR_ERR(ess->hw_addr);
  1124	
  1125		err = of_get_phy_mode(np, &phy_mode);
  1126		if (err) {
  1127			dev_err(&pdev->dev, "incorrect phy-mode\n");
  1128			return err;
  1129		}
  1130	
  1131		ess->ess_clk = devm_clk_get(&pdev->dev, "ess");
  1132		if (!IS_ERR(ess->ess_clk))
  1133			clk_prepare_enable(ess->ess_clk);
  1134	
  1135		ess->ess_rst = devm_reset_control_get(&pdev->dev, "ess");
  1136		if (IS_ERR(ess->ess_rst))
  1137			goto err_clk;
  1138	
  1139		ipqess_reset(ess);
  1140	
  1141		ess->phylink_config.dev = &netdev->dev;
  1142		ess->phylink_config.type = PHYLINK_NETDEV;
  1143		ess->phylink_config.mac_capabilities = MAC_SYM_PAUSE | MAC_10 |
  1144						       MAC_100 | MAC_1000FD;
  1145	
  1146		__set_bit(PHY_INTERFACE_MODE_INTERNAL,
  1147			  ess->phylink_config.supported_interfaces);
  1148	
  1149		ess->phylink = phylink_create(&ess->phylink_config,
  1150					      of_fwnode_handle(np), phy_mode,
  1151					      &ipqess_phylink_mac_ops);
  1152		if (IS_ERR(ess->phylink)) {
  1153			err = PTR_ERR(ess->phylink);
  1154			goto err_clk;
  1155		}
  1156	
  1157		for (i = 0; i < IPQESS_MAX_TX_QUEUE; i++) {
  1158			ess->tx_irq[i] = platform_get_irq(pdev, i);
  1159			scnprintf(ess->tx_irq_names[i], sizeof(ess->tx_irq_names[i]),
  1160				  "%s:txq%d", pdev->name, i);
  1161		}
  1162	
  1163		for (i = 0; i < IPQESS_MAX_RX_QUEUE; i++) {
  1164			ess->rx_irq[i] = platform_get_irq(pdev, i + IPQESS_MAX_TX_QUEUE);
  1165			scnprintf(ess->rx_irq_names[i], sizeof(ess->rx_irq_names[i]),
  1166				  "%s:rxq%d", pdev->name, i);
  1167		}
  1168	
  1169		netdev->netdev_ops = &ipqess_axi_netdev_ops;
  1170		netdev->features = NETIF_F_HW_CSUM | NETIF_F_RXCSUM |
  1171				   NETIF_F_HW_VLAN_CTAG_RX |
  1172				   NETIF_F_HW_VLAN_CTAG_TX |
  1173				   NETIF_F_TSO | NETIF_F_GRO | NETIF_F_SG;
  1174		/* feature change is not supported yet */
  1175		netdev->hw_features = 0;
  1176		netdev->vlan_features = NETIF_F_HW_CSUM | NETIF_F_SG | NETIF_F_RXCSUM |
  1177					NETIF_F_TSO |
  1178					NETIF_F_GRO;
  1179		netdev->watchdog_timeo = 5 * HZ;
  1180		netdev->base_addr = (u32)ess->hw_addr;
  1181		netdev->max_mtu = 9000;
  1182		netdev->gso_max_segs = IPQESS_TX_RING_SIZE / 2;
  1183	
  1184		ipqess_set_ethtool_ops(netdev);
  1185	
  1186		err = ipqess_hw_init(ess);
  1187		if (err)
  1188			goto err_phylink;
  1189	
  1190		for (i = 0; i < IPQESS_NETDEV_QUEUES; i++) {
> 1191			netif_tx_napi_add(netdev, &ess->tx_ring[i].napi_tx,
  1192					  ipqess_tx_napi, 64);
  1193			netif_napi_add(netdev, &ess->rx_ring[i].napi_rx, ipqess_rx_napi,
  1194				       64);
  1195		}
  1196	
  1197		err = register_netdev(netdev);
  1198		if (err)
  1199			goto err_hw_stop;
  1200	
  1201		return 0;
  1202	
  1203	err_hw_stop:
  1204		ipqess_hw_stop(ess);
  1205	
  1206		ipqess_tx_ring_free(ess);
  1207		ipqess_rx_ring_free(ess);
  1208	err_phylink:
  1209		phylink_destroy(ess->phylink);
  1210	
  1211	err_clk:
  1212		clk_disable_unprepare(ess->ess_clk);
  1213	
  1214		return err;
  1215	}
  1216	

-- 
0-DAY CI Kernel Test Service
https://01.org/lkp