All of lore.kernel.org
 help / color / mirror / Atom feed
* [linux-next:master 16005/16300] drivers/net/ethernet/cadence/macb_main.c:5948:15: error: implicit declaration of function 'macb_alloc_tieoff'
@ 2026-08-19  7:48 kernel test robot
  0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2026-08-19  7:48 UTC (permalink / raw)
  To:  Théo Lebrun; +Cc: oe-kbuild-all, Jakub Kicinski, Nicolai Buchwitz

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
head:   5453bc3279e9f8578ac3e534d476240e40c879e1
commit: 5262eab9462adffd73a84409dee0cbf57fe31da3 [16005/16300] net: macb: allocate tieoff descriptor once across device lifetime
config: i386-randconfig-001-20260819 (https://download.01.org/0day-ci/archive/20260819/202608191540.VjDL454p-lkp@intel.com/config)
compiler: gcc-14 (Debian 14.2.0-19) 14.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260819/202608191540.VjDL454p-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
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202608191540.VjDL454p-lkp@intel.com/

All errors (new ones prefixed by >>):

   drivers/net/ethernet/cadence/macb_main.c: In function 'macb_probe':
>> drivers/net/ethernet/cadence/macb_main.c:5948:15: error: implicit declaration of function 'macb_alloc_tieoff' [-Wimplicit-function-declaration]
    5948 |         err = macb_alloc_tieoff(bp);
         |               ^~~~~~~~~~~~~~~~~
>> drivers/net/ethernet/cadence/macb_main.c:5970:9: error: implicit declaration of function 'macb_free_tieoff' [-Wimplicit-function-declaration]
    5970 |         macb_free_tieoff(bp);
         |         ^~~~~~~~~~~~~~~~


vim +/macb_alloc_tieoff +5948 drivers/net/ethernet/cadence/macb_main.c

  5764	
  5765	static int macb_probe(struct platform_device *pdev)
  5766	{
  5767		struct clk *pclk, *hclk = NULL, *tx_clk = NULL, *rx_clk = NULL;
  5768		struct device_node *np = pdev->dev.of_node;
  5769		const struct macb_config *macb_config;
  5770		struct clk *tsu_clk = NULL;
  5771		phy_interface_t interface;
  5772		struct net_device *netdev;
  5773		struct resource *regs;
  5774		u32 wtrmrk_rst_val;
  5775		void __iomem *mem;
  5776		struct macb *bp;
  5777		int num_queues;
  5778		bool native_io;
  5779		int err, val;
  5780	
  5781		mem = devm_platform_get_and_ioremap_resource(pdev, 0, &regs);
  5782		if (IS_ERR(mem))
  5783			return PTR_ERR(mem);
  5784	
  5785		macb_config = of_device_get_match_data(&pdev->dev);
  5786		if (!macb_config)
  5787			macb_config = &default_gem_config;
  5788	
  5789		err = macb_clk_init(pdev, &pclk, &hclk, &tx_clk, &rx_clk, &tsu_clk,
  5790				    macb_config);
  5791		if (err)
  5792			return err;
  5793	
  5794		pm_runtime_set_autosuspend_delay(&pdev->dev, MACB_PM_TIMEOUT);
  5795		pm_runtime_use_autosuspend(&pdev->dev);
  5796		pm_runtime_get_noresume(&pdev->dev);
  5797		pm_runtime_set_active(&pdev->dev);
  5798		pm_runtime_enable(&pdev->dev);
  5799		native_io = hw_is_native_io(mem);
  5800	
  5801		num_queues = macb_probe_queues(&pdev->dev, mem, native_io);
  5802		if (num_queues < 0) {
  5803			err = num_queues;
  5804			goto err_disable_clocks;
  5805		}
  5806	
  5807		netdev = alloc_etherdev_mq(sizeof(*bp), num_queues);
  5808		if (!netdev) {
  5809			err = -ENOMEM;
  5810			goto err_disable_clocks;
  5811		}
  5812	
  5813		netdev->base_addr = regs->start;
  5814	
  5815		SET_NETDEV_DEV(netdev, &pdev->dev);
  5816	
  5817		bp = netdev_priv(netdev);
  5818		bp->pdev = pdev;
  5819		bp->netdev = netdev;
  5820		bp->regs = mem;
  5821		bp->native_io = native_io;
  5822		if (native_io) {
  5823			bp->macb_reg_readl = hw_readl_native;
  5824			bp->macb_reg_writel = hw_writel_native;
  5825		} else {
  5826			bp->macb_reg_readl = hw_readl;
  5827			bp->macb_reg_writel = hw_writel;
  5828		}
  5829		bp->num_queues = num_queues;
  5830		bp->dma_burst_length = macb_config->dma_burst_length;
  5831		bp->pclk = pclk;
  5832		bp->hclk = hclk;
  5833		bp->tx_clk = tx_clk;
  5834		bp->rx_clk = rx_clk;
  5835		bp->tsu_clk = tsu_clk;
  5836		bp->jumbo_max_len = macb_config->jumbo_max_len;
  5837	
  5838		if (!hw_is_gem(bp->regs, bp->native_io))
  5839			bp->max_tx_length = MACB_MAX_TX_LEN;
  5840		else if (macb_config->max_tx_length)
  5841			bp->max_tx_length = macb_config->max_tx_length;
  5842		else
  5843			bp->max_tx_length = GEM_MAX_TX_LEN;
  5844	
  5845		bp->wol = 0;
  5846		device_set_wakeup_capable(&pdev->dev, 1);
  5847	
  5848		bp->usrio = macb_config->usrio;
  5849	
  5850		if (of_property_read_bool(bp->pdev->dev.of_node, "cdns,timer-adjust") &&
  5851				IS_ENABLED(CONFIG_MACB_USE_HWSTAMP)) {
  5852			dev_err(&pdev->dev, "Timer adjust mode is not supported\n");
  5853			err = -EINVAL;
  5854			goto err_out_free_netdev;
  5855		}
  5856	
  5857		/* By default we set to partial store and forward mode for zynqmp.
  5858		 * Disable if not set in devicetree.
  5859		 */
  5860		if (GEM_BFEXT(PBUF_CUTTHRU, gem_readl(bp, DCFG6))) {
  5861			err = of_property_read_u32(bp->pdev->dev.of_node,
  5862						   "cdns,rx-watermark",
  5863						   &bp->rx_watermark);
  5864	
  5865			if (!err) {
  5866				/* Disable partial store and forward in case of error or
  5867				 * invalid watermark value
  5868				 */
  5869				wtrmrk_rst_val = (1 << (GEM_BFEXT(RX_PBUF_ADDR, gem_readl(bp, DCFG2)))) - 1;
  5870				if (bp->rx_watermark > wtrmrk_rst_val || !bp->rx_watermark) {
  5871					dev_info(&bp->pdev->dev, "Invalid watermark value\n");
  5872					bp->rx_watermark = 0;
  5873				}
  5874			}
  5875		}
  5876		spin_lock_init(&bp->lock);
  5877		spin_lock_init(&bp->stats_lock);
  5878	
  5879		/* setup capabilities */
  5880		macb_configure_caps(bp, macb_config);
  5881	
  5882	#ifdef CONFIG_ARCH_DMA_ADDR_T_64BIT
  5883		if (GEM_BFEXT(DAW64, gem_readl(bp, DCFG6))) {
  5884			err = dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(44));
  5885			if (err) {
  5886				dev_err(&pdev->dev, "failed to set DMA mask\n");
  5887				goto err_out_free_netdev;
  5888			}
  5889			bp->caps |= MACB_CAPS_DMA_64B;
  5890		}
  5891	#endif
  5892		platform_set_drvdata(pdev, netdev);
  5893	
  5894		netdev->irq = platform_get_irq(pdev, 0);
  5895		if (netdev->irq < 0) {
  5896			err = netdev->irq;
  5897			goto err_out_free_netdev;
  5898		}
  5899	
  5900		/* MTU range: 68 - 1518 or 10240 */
  5901		netdev->min_mtu = GEM_MTU_MIN_SIZE;
  5902		if ((bp->caps & MACB_CAPS_JUMBO) && bp->jumbo_max_len)
  5903			netdev->max_mtu = MIN(bp->jumbo_max_len, RX_BUFFER_MAX) -
  5904					ETH_HLEN - ETH_FCS_LEN;
  5905		else
  5906			netdev->max_mtu = 1536 - ETH_HLEN - ETH_FCS_LEN;
  5907	
  5908		if (bp->caps & MACB_CAPS_BD_RD_PREFETCH) {
  5909			val = GEM_BFEXT(RXBD_RDBUFF, gem_readl(bp, DCFG10));
  5910			if (val)
  5911				bp->rx_bd_rd_prefetch = (2 << (val - 1)) *
  5912							macb_dma_desc_get_size(bp);
  5913	
  5914			val = GEM_BFEXT(TXBD_RDBUFF, gem_readl(bp, DCFG10));
  5915			if (val)
  5916				bp->tx_bd_rd_prefetch = (2 << (val - 1)) *
  5917							macb_dma_desc_get_size(bp);
  5918		}
  5919	
  5920		bp->rx_intr_mask = MACB_RX_INT_FLAGS;
  5921		if (bp->caps & MACB_CAPS_NEEDS_RSTONUBR)
  5922			bp->rx_intr_mask |= MACB_BIT(RXUBR);
  5923	
  5924		err = of_get_ethdev_address(np, bp->netdev);
  5925		if (err == -EPROBE_DEFER)
  5926			goto err_out_free_netdev;
  5927		else if (err)
  5928			macb_get_hwaddr(bp);
  5929	
  5930		err = of_get_phy_mode(np, &interface);
  5931		if (err)
  5932			/* not found in DT, MII by default */
  5933			bp->phy_interface = PHY_INTERFACE_MODE_MII;
  5934		else
  5935			bp->phy_interface = interface;
  5936	
  5937		/* IP specific init */
  5938		err = macb_init(pdev, macb_config);
  5939		if (err)
  5940			goto err_out_free_netdev;
  5941	
  5942		err = macb_mii_init(bp);
  5943		if (err)
  5944			goto err_out_phy_exit;
  5945	
  5946		netif_carrier_off(netdev);
  5947	
> 5948		err = macb_alloc_tieoff(bp);
  5949		if (err)
  5950			goto err_out_unregister_mdio;
  5951	
  5952		err = register_netdev(netdev);
  5953		if (err) {
  5954			dev_err(&pdev->dev, "Cannot register net device, aborting.\n");
  5955			goto err_out_free_tieoff;
  5956		}
  5957	
  5958		INIT_WORK(&bp->hresp_err_bh_work, macb_hresp_error_task);
  5959		INIT_DELAYED_WORK(&bp->tx_lpi_work, macb_tx_lpi_work_fn);
  5960	
  5961		netdev_info(netdev, "Cadence %s rev 0x%08x at 0x%08lx irq %d (%pM)\n",
  5962			    macb_is_gem(bp) ? "GEM" : "MACB", macb_readl(bp, MID),
  5963			    netdev->base_addr, netdev->irq, netdev->dev_addr);
  5964	
  5965		pm_runtime_put_autosuspend(&bp->pdev->dev);
  5966	
  5967		return 0;
  5968	
  5969	err_out_free_tieoff:
> 5970		macb_free_tieoff(bp);
  5971	
  5972	err_out_unregister_mdio:
  5973		mdiobus_unregister(bp->mii_bus);
  5974		mdiobus_free(bp->mii_bus);
  5975	
  5976	err_out_phy_exit:
  5977		phy_exit(bp->phy);
  5978	
  5979	err_out_free_netdev:
  5980		free_netdev(netdev);
  5981	
  5982	err_disable_clocks:
  5983		macb_clks_disable(pclk, hclk, tx_clk, rx_clk, tsu_clk);
  5984		pm_runtime_disable(&pdev->dev);
  5985		pm_runtime_set_suspended(&pdev->dev);
  5986		pm_runtime_dont_use_autosuspend(&pdev->dev);
  5987	
  5988		return err;
  5989	}
  5990	

--
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-08-19  7:49 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-08-19  7:48 [linux-next:master 16005/16300] drivers/net/ethernet/cadence/macb_main.c:5948:15: error: implicit declaration of function 'macb_alloc_tieoff' 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.