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/202209120614.ZJKTCvbf-lkp@xxxxxxxxx/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 <lkp@xxxxxxxxx> 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