All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: kbuild@lists.01.org
Subject: [xlnx:master 9663/10510] drivers/net/ethernet/xilinx/xilinx_axienet_main.c:2948 axienet_probe() warn: missing error code 'ret'
Date: Wed, 10 Feb 2021 18:13:39 +0800	[thread overview]
Message-ID: <202102101833.FrM8Jdkv-lkp@intel.com> (raw)

[-- Attachment #1: Type: text/plain, Size: 30254 bytes --]

CC: kbuild-all(a)lists.01.org
CC: linux-arm-kernel(a)lists.infradead.org
TO: Saurabh Sengar <saurabh.singh@xilinx.com>
CC: Michal Simek <monstr@monstr.eu>
CC: Appana Durga Kedareswara Rao <appana.durga.rao@xilinx.com>
CC: Radhey Shyam Pandey <radhey.shyam.pandey@xilinx.com>

tree:   https://github.com/Xilinx/linux-xlnx master
head:   d3774573d5a9700273bd0c3ff82af157107f7fa6
commit: 0f447249ba48721e24292b1ddacf1b4b4e21d9a7 [9663/10510] net: axienet: added multichannel DMA support
:::::: branch date: 5 days ago
:::::: commit date: 12 months ago
config: i386-randconfig-m021-20210209 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-15) 9.3.0

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>

New smatch warnings:
drivers/net/ethernet/xilinx/xilinx_axienet_main.c:2948 axienet_probe() warn: missing error code 'ret'

Old smatch warnings:
drivers/net/ethernet/xilinx/xilinx_axienet_main.c:204 axienet_dma_bd_init() error: uninitialized symbol 'ret'.
drivers/net/ethernet/xilinx/xilinx_axienet_main.c:1373 axienet_mii_init() warn: inconsistent returns 'lp->mii_bus->mdio_lock'.

vim +/ret +2948 drivers/net/ethernet/xilinx/xilinx_axienet_main.c

27a4863f9f2dcd Appana Durga Kedareswara Rao 2020-01-24  2705  
8a3b7a252dca9f Daniel Borkmann              2012-01-19  2706  /**
2be586205ca2b8 Srikanth Thokala             2015-05-05  2707   * axienet_probe - Axi Ethernet probe function.
95219aa538e11d Srikanth Thokala             2015-05-05  2708   * @pdev:	Pointer to platform device structure.
8a3b7a252dca9f Daniel Borkmann              2012-01-19  2709   *
b0d081c524b46c Michal Simek                 2015-05-05  2710   * Return: 0, on success
8a3b7a252dca9f Daniel Borkmann              2012-01-19  2711   *	    Non-zero error value on failure.
8a3b7a252dca9f Daniel Borkmann              2012-01-19  2712   *
8a3b7a252dca9f Daniel Borkmann              2012-01-19  2713   * This is the probe routine for Axi Ethernet driver. This is called before
8a3b7a252dca9f Daniel Borkmann              2012-01-19  2714   * any other driver routines are invoked. It allocates and sets up the Ethernet
8a3b7a252dca9f Daniel Borkmann              2012-01-19  2715   * device. Parses through device tree and populates fields of
8a3b7a252dca9f Daniel Borkmann              2012-01-19  2716   * axienet_local. It registers the Ethernet device.
8a3b7a252dca9f Daniel Borkmann              2012-01-19  2717   */
2be586205ca2b8 Srikanth Thokala             2015-05-05  2718  static int axienet_probe(struct platform_device *pdev)
8a3b7a252dca9f Daniel Borkmann              2012-01-19  2719  {
b5d3f74c95f046 Appana Durga Kedareswara Rao 2020-01-24  2720  	int (*axienet_clk_init)(struct platform_device *pdev,
b5d3f74c95f046 Appana Durga Kedareswara Rao 2020-01-24  2721  				struct clk **axi_aclk, struct clk **axis_clk,
b5d3f74c95f046 Appana Durga Kedareswara Rao 2020-01-24  2722  				struct clk **ref_clk, struct clk **tmpclk) =
b5d3f74c95f046 Appana Durga Kedareswara Rao 2020-01-24  2723  					axienet_clk_init;
f74b2e947664be Appana Durga Kedareswara Rao 2020-01-24  2724  	int ret = 0;
0f447249ba4872 Saurabh Sengar               2020-01-24  2725  #ifdef CONFIG_XILINX_AXI_EMAC_HWTSTAMP
8a3b7a252dca9f Daniel Borkmann              2012-01-19  2726  	struct device_node *np;
0f447249ba4872 Saurabh Sengar               2020-01-24  2727  #endif
8a3b7a252dca9f Daniel Borkmann              2012-01-19  2728  	struct axienet_local *lp;
8a3b7a252dca9f Daniel Borkmann              2012-01-19  2729  	struct net_device *ndev;
da90e38003e2f0 Tobias Klauser               2016-12-07  2730  	const void *mac_addr;
0f447249ba4872 Saurabh Sengar               2020-01-24  2731  	struct resource *ethres;
8495659bf93c8e Srikanth Thokala             2015-05-05  2732  	u32 value;
0f447249ba4872 Saurabh Sengar               2020-01-24  2733  	u16 num_queues = XAE_MAX_QUEUES;
0f447249ba4872 Saurabh Sengar               2020-01-24  2734  	bool slave = false;
0f447249ba4872 Saurabh Sengar               2020-01-24  2735  
0f447249ba4872 Saurabh Sengar               2020-01-24  2736  	ret = of_property_read_u16(pdev->dev.of_node, "xlnx,num-queues",
0f447249ba4872 Saurabh Sengar               2020-01-24  2737  				   &num_queues);
0f447249ba4872 Saurabh Sengar               2020-01-24  2738  	if (ret) {
0f447249ba4872 Saurabh Sengar               2020-01-24  2739  #ifndef CONFIG_AXIENET_HAS_MCDMA
0f447249ba4872 Saurabh Sengar               2020-01-24  2740  		num_queues = 1;
0f447249ba4872 Saurabh Sengar               2020-01-24  2741  #endif
0f447249ba4872 Saurabh Sengar               2020-01-24  2742  	}
8a3b7a252dca9f Daniel Borkmann              2012-01-19  2743  
0f447249ba4872 Saurabh Sengar               2020-01-24  2744  	ndev = alloc_etherdev_mq(sizeof(*lp), num_queues);
41de8d4cff21a2 Joe Perches                  2012-01-29  2745  	if (!ndev)
8a3b7a252dca9f Daniel Borkmann              2012-01-19  2746  		return -ENOMEM;
8a3b7a252dca9f Daniel Borkmann              2012-01-19  2747  
95219aa538e11d Srikanth Thokala             2015-05-05  2748  	platform_set_drvdata(pdev, ndev);
8a3b7a252dca9f Daniel Borkmann              2012-01-19  2749  
95219aa538e11d Srikanth Thokala             2015-05-05  2750  	SET_NETDEV_DEV(ndev, &pdev->dev);
8a3b7a252dca9f Daniel Borkmann              2012-01-19  2751  	ndev->flags &= ~IFF_MULTICAST;  /* clear multicast */
28e24c62ab3062 Eric Dumazet                 2013-12-02  2752  	ndev->features = NETIF_F_SG;
8a3b7a252dca9f Daniel Borkmann              2012-01-19  2753  	ndev->netdev_ops = &axienet_netdev_ops;
8a3b7a252dca9f Daniel Borkmann              2012-01-19  2754  	ndev->ethtool_ops = &axienet_ethtool_ops;
8a3b7a252dca9f Daniel Borkmann              2012-01-19  2755  
d894be57ca92c8 Jarod Wilson                 2016-10-20  2756  	/* MTU range: 64 - 9000 */
d894be57ca92c8 Jarod Wilson                 2016-10-20  2757  	ndev->min_mtu = 64;
d894be57ca92c8 Jarod Wilson                 2016-10-20  2758  	ndev->max_mtu = XAE_JUMBO_MTU;
d894be57ca92c8 Jarod Wilson                 2016-10-20  2759  
8a3b7a252dca9f Daniel Borkmann              2012-01-19  2760  	lp = netdev_priv(ndev);
8a3b7a252dca9f Daniel Borkmann              2012-01-19  2761  	lp->ndev = ndev;
95219aa538e11d Srikanth Thokala             2015-05-05  2762  	lp->dev = &pdev->dev;
8a3b7a252dca9f Daniel Borkmann              2012-01-19  2763  	lp->options = XAE_OPTION_DEFAULTS;
0f447249ba4872 Saurabh Sengar               2020-01-24  2764  	lp->num_tx_queues = num_queues;
0f447249ba4872 Saurabh Sengar               2020-01-24  2765  	lp->num_rx_queues = num_queues;
8b09ca823ffb4e Robert Hancock               2019-06-06  2766  	lp->rx_bd_num = RX_BD_NUM_DEFAULT;
8b09ca823ffb4e Robert Hancock               2019-06-06  2767  	lp->tx_bd_num = TX_BD_NUM_DEFAULT;
0f447249ba4872 Saurabh Sengar               2020-01-24  2768  
8a3b7a252dca9f Daniel Borkmann              2012-01-19  2769  	/* Map device registers */
46aa27df885321 Srikanth Thokala             2015-05-05  2770  	ethres = platform_get_resource(pdev, IORESOURCE_MEM, 0);
46aa27df885321 Srikanth Thokala             2015-05-05  2771  	lp->regs = devm_ioremap_resource(&pdev->dev, ethres);
fcc028c106e575 Krzysztof Kozlowski          2015-07-09  2772  	if (IS_ERR(lp->regs)) {
fcc028c106e575 Krzysztof Kozlowski          2015-07-09  2773  		ret = PTR_ERR(lp->regs);
46aa27df885321 Srikanth Thokala             2015-05-05  2774  		goto free_netdev;
8a3b7a252dca9f Daniel Borkmann              2012-01-19  2775  	}
7fa0043d5c74c6 Robert Hancock               2019-06-11  2776  	lp->regs_start = ethres->start;
46aa27df885321 Srikanth Thokala             2015-05-05  2777  
8a3b7a252dca9f Daniel Borkmann              2012-01-19  2778  	/* Setup checksum offload, but default to off if not specified */
8a3b7a252dca9f Daniel Borkmann              2012-01-19  2779  	lp->features = 0;
8a3b7a252dca9f Daniel Borkmann              2012-01-19  2780  
27a4863f9f2dcd Appana Durga Kedareswara Rao 2020-01-24  2781  	if (pdev->dev.of_node) {
27a4863f9f2dcd Appana Durga Kedareswara Rao 2020-01-24  2782  		const struct of_device_id *match;
27a4863f9f2dcd Appana Durga Kedareswara Rao 2020-01-24  2783  
27a4863f9f2dcd Appana Durga Kedareswara Rao 2020-01-24  2784  		match = of_match_node(axienet_of_match, pdev->dev.of_node);
b5d3f74c95f046 Appana Durga Kedareswara Rao 2020-01-24  2785  		if (match && match->data) {
27a4863f9f2dcd Appana Durga Kedareswara Rao 2020-01-24  2786  			lp->axienet_config = match->data;
b5d3f74c95f046 Appana Durga Kedareswara Rao 2020-01-24  2787  			axienet_clk_init = lp->axienet_config->clk_init;
b5d3f74c95f046 Appana Durga Kedareswara Rao 2020-01-24  2788  		}
27a4863f9f2dcd Appana Durga Kedareswara Rao 2020-01-24  2789  	}
27a4863f9f2dcd Appana Durga Kedareswara Rao 2020-01-24  2790  
8495659bf93c8e Srikanth Thokala             2015-05-05  2791  	ret = of_property_read_u32(pdev->dev.of_node, "xlnx,txcsum", &value);
8495659bf93c8e Srikanth Thokala             2015-05-05  2792  	if (!ret) {
f74b2e947664be Appana Durga Kedareswara Rao 2020-01-24  2793  		dev_info(&pdev->dev, "TX_CSUM %d\n", value);
f74b2e947664be Appana Durga Kedareswara Rao 2020-01-24  2794  
8495659bf93c8e Srikanth Thokala             2015-05-05  2795  		switch (value) {
8a3b7a252dca9f Daniel Borkmann              2012-01-19  2796  		case 1:
8a3b7a252dca9f Daniel Borkmann              2012-01-19  2797  			lp->csum_offload_on_tx_path =
8a3b7a252dca9f Daniel Borkmann              2012-01-19  2798  				XAE_FEATURE_PARTIAL_TX_CSUM;
8a3b7a252dca9f Daniel Borkmann              2012-01-19  2799  			lp->features |= XAE_FEATURE_PARTIAL_TX_CSUM;
8a3b7a252dca9f Daniel Borkmann              2012-01-19  2800  			/* Can checksum TCP/UDP over IPv4. */
f74b2e947664be Appana Durga Kedareswara Rao 2020-01-24  2801  			ndev->features |= NETIF_F_IP_CSUM | NETIF_F_SG;
8a3b7a252dca9f Daniel Borkmann              2012-01-19  2802  			break;
8a3b7a252dca9f Daniel Borkmann              2012-01-19  2803  		case 2:
8a3b7a252dca9f Daniel Borkmann              2012-01-19  2804  			lp->csum_offload_on_tx_path =
8a3b7a252dca9f Daniel Borkmann              2012-01-19  2805  				XAE_FEATURE_FULL_TX_CSUM;
8a3b7a252dca9f Daniel Borkmann              2012-01-19  2806  			lp->features |= XAE_FEATURE_FULL_TX_CSUM;
8a3b7a252dca9f Daniel Borkmann              2012-01-19  2807  			/* Can checksum TCP/UDP over IPv4. */
f74b2e947664be Appana Durga Kedareswara Rao 2020-01-24  2808  			ndev->features |= NETIF_F_IP_CSUM | NETIF_F_SG;
8a3b7a252dca9f Daniel Borkmann              2012-01-19  2809  			break;
8a3b7a252dca9f Daniel Borkmann              2012-01-19  2810  		default:
8a3b7a252dca9f Daniel Borkmann              2012-01-19  2811  			lp->csum_offload_on_tx_path = XAE_NO_CSUM_OFFLOAD;
8a3b7a252dca9f Daniel Borkmann              2012-01-19  2812  		}
8a3b7a252dca9f Daniel Borkmann              2012-01-19  2813  	}
8495659bf93c8e Srikanth Thokala             2015-05-05  2814  	ret = of_property_read_u32(pdev->dev.of_node, "xlnx,rxcsum", &value);
8495659bf93c8e Srikanth Thokala             2015-05-05  2815  	if (!ret) {
f74b2e947664be Appana Durga Kedareswara Rao 2020-01-24  2816  		dev_info(&pdev->dev, "RX_CSUM %d\n", value);
f74b2e947664be Appana Durga Kedareswara Rao 2020-01-24  2817  
8495659bf93c8e Srikanth Thokala             2015-05-05  2818  		switch (value) {
8a3b7a252dca9f Daniel Borkmann              2012-01-19  2819  		case 1:
8a3b7a252dca9f Daniel Borkmann              2012-01-19  2820  			lp->csum_offload_on_rx_path =
8a3b7a252dca9f Daniel Borkmann              2012-01-19  2821  				XAE_FEATURE_PARTIAL_RX_CSUM;
8a3b7a252dca9f Daniel Borkmann              2012-01-19  2822  			lp->features |= XAE_FEATURE_PARTIAL_RX_CSUM;
8a3b7a252dca9f Daniel Borkmann              2012-01-19  2823  			break;
8a3b7a252dca9f Daniel Borkmann              2012-01-19  2824  		case 2:
8a3b7a252dca9f Daniel Borkmann              2012-01-19  2825  			lp->csum_offload_on_rx_path =
8a3b7a252dca9f Daniel Borkmann              2012-01-19  2826  				XAE_FEATURE_FULL_RX_CSUM;
8a3b7a252dca9f Daniel Borkmann              2012-01-19  2827  			lp->features |= XAE_FEATURE_FULL_RX_CSUM;
8a3b7a252dca9f Daniel Borkmann              2012-01-19  2828  			break;
8a3b7a252dca9f Daniel Borkmann              2012-01-19  2829  		default:
8a3b7a252dca9f Daniel Borkmann              2012-01-19  2830  			lp->csum_offload_on_rx_path = XAE_NO_CSUM_OFFLOAD;
8a3b7a252dca9f Daniel Borkmann              2012-01-19  2831  		}
8a3b7a252dca9f Daniel Borkmann              2012-01-19  2832  	}
8a3b7a252dca9f Daniel Borkmann              2012-01-19  2833  	/* For supporting jumbo frames, the Axi Ethernet hardware must have
f080a8c35d8932 Srikanth Thokala             2015-05-05  2834  	 * a larger Rx/Tx Memory. Typically, the size must be large so that
f080a8c35d8932 Srikanth Thokala             2015-05-05  2835  	 * we can enable jumbo option and start supporting jumbo frames.
f080a8c35d8932 Srikanth Thokala             2015-05-05  2836  	 * Here we check for memory allocated for Rx/Tx in the hardware from
f080a8c35d8932 Srikanth Thokala             2015-05-05  2837  	 * the device-tree and accordingly set flags.
f080a8c35d8932 Srikanth Thokala             2015-05-05  2838  	 */
8495659bf93c8e Srikanth Thokala             2015-05-05  2839  	of_property_read_u32(pdev->dev.of_node, "xlnx,rxmem", &lp->rxmem);
ee06b1728b9564 Alvaro G. M                  2017-07-17  2840  
ee06b1728b9564 Alvaro G. M                  2017-07-17  2841  	/* Start with the proprietary, and broken phy_type */
ee06b1728b9564 Alvaro G. M                  2017-07-17  2842  	ret = of_property_read_u32(pdev->dev.of_node, "xlnx,phy-type", &value);
ee06b1728b9564 Alvaro G. M                  2017-07-17  2843  	if (!ret) {
ee06b1728b9564 Alvaro G. M                  2017-07-17  2844  		switch (value) {
ee06b1728b9564 Alvaro G. M                  2017-07-17  2845  		case XAE_PHY_TYPE_MII:
ee06b1728b9564 Alvaro G. M                  2017-07-17  2846  			lp->phy_mode = PHY_INTERFACE_MODE_MII;
ee06b1728b9564 Alvaro G. M                  2017-07-17  2847  			break;
ee06b1728b9564 Alvaro G. M                  2017-07-17  2848  		case XAE_PHY_TYPE_GMII:
ee06b1728b9564 Alvaro G. M                  2017-07-17  2849  			lp->phy_mode = PHY_INTERFACE_MODE_GMII;
ee06b1728b9564 Alvaro G. M                  2017-07-17  2850  			break;
ee06b1728b9564 Alvaro G. M                  2017-07-17  2851  		case XAE_PHY_TYPE_RGMII_2_0:
ee06b1728b9564 Alvaro G. M                  2017-07-17  2852  			lp->phy_mode = PHY_INTERFACE_MODE_RGMII_ID;
ee06b1728b9564 Alvaro G. M                  2017-07-17  2853  			break;
ee06b1728b9564 Alvaro G. M                  2017-07-17  2854  		case XAE_PHY_TYPE_SGMII:
ee06b1728b9564 Alvaro G. M                  2017-07-17  2855  			lp->phy_mode = PHY_INTERFACE_MODE_SGMII;
ee06b1728b9564 Alvaro G. M                  2017-07-17  2856  			break;
ee06b1728b9564 Alvaro G. M                  2017-07-17  2857  		case XAE_PHY_TYPE_1000BASE_X:
ee06b1728b9564 Alvaro G. M                  2017-07-17  2858  			lp->phy_mode = PHY_INTERFACE_MODE_1000BASEX;
ee06b1728b9564 Alvaro G. M                  2017-07-17  2859  			break;
ee06b1728b9564 Alvaro G. M                  2017-07-17  2860  		default:
9e8ce9d565663f Appana Durga Kedareswara Rao 2020-01-24  2861  			/* Don't error out as phy-type is an optional property */
9e8ce9d565663f Appana Durga Kedareswara Rao 2020-01-24  2862  			break;
ee06b1728b9564 Alvaro G. M                  2017-07-17  2863  		}
ee06b1728b9564 Alvaro G. M                  2017-07-17  2864  	} else {
ee06b1728b9564 Alvaro G. M                  2017-07-17  2865  		lp->phy_mode = of_get_phy_mode(pdev->dev.of_node);
73e211e11be867 Dan Carpenter                2019-09-25  2866  		if ((int)lp->phy_mode < 0) {
9e8ce9d565663f Appana Durga Kedareswara Rao 2020-01-24  2867  			dev_warn(&pdev->dev, "couldn't find phy i/f\n");
ee06b1728b9564 Alvaro G. M                  2017-07-17  2868  		}
ee06b1728b9564 Alvaro G. M                  2017-07-17  2869  	}
8a3b7a252dca9f Daniel Borkmann              2012-01-19  2870  
d8d52edc0088c9 Appana Durga Kedareswara Rao 2020-01-24  2871  	lp->eth_hasnobuf = of_property_read_bool(pdev->dev.of_node,
d8d52edc0088c9 Appana Durga Kedareswara Rao 2020-01-24  2872  						 "xlnx,eth-hasnobuf");
6a8544f2f4d900 Appana Durga Kedareswara Rao 2020-01-24  2873  	lp->eth_hasptp = of_property_read_bool(pdev->dev.of_node,
6a8544f2f4d900 Appana Durga Kedareswara Rao 2020-01-24  2874  					       "xlnx,eth-hasptp");
d8d52edc0088c9 Appana Durga Kedareswara Rao 2020-01-24  2875  
9e8ce9d565663f Appana Durga Kedareswara Rao 2020-01-24  2876  	if ((lp->axienet_config->mactype == XAXIENET_1G) && !lp->eth_hasnobuf)
9e8ce9d565663f Appana Durga Kedareswara Rao 2020-01-24  2877  		lp->eth_irq = platform_get_irq(pdev, 0);
6a8544f2f4d900 Appana Durga Kedareswara Rao 2020-01-24  2878  
6a8544f2f4d900 Appana Durga Kedareswara Rao 2020-01-24  2879  #ifdef CONFIG_XILINX_AXI_EMAC_HWTSTAMP
6a8544f2f4d900 Appana Durga Kedareswara Rao 2020-01-24  2880  	struct resource txtsres, rxtsres;
6a8544f2f4d900 Appana Durga Kedareswara Rao 2020-01-24  2881  
6a8544f2f4d900 Appana Durga Kedareswara Rao 2020-01-24  2882  	/* Find AXI Stream FIFO */
6a8544f2f4d900 Appana Durga Kedareswara Rao 2020-01-24  2883  	np = of_parse_phandle(pdev->dev.of_node, "axififo-connected", 0);
6a8544f2f4d900 Appana Durga Kedareswara Rao 2020-01-24  2884  	if (IS_ERR(np)) {
6a8544f2f4d900 Appana Durga Kedareswara Rao 2020-01-24  2885  		dev_err(&pdev->dev, "could not find TX Timestamp FIFO\n");
6a8544f2f4d900 Appana Durga Kedareswara Rao 2020-01-24  2886  		ret = PTR_ERR(np);
6a8544f2f4d900 Appana Durga Kedareswara Rao 2020-01-24  2887  		goto free_netdev;
6a8544f2f4d900 Appana Durga Kedareswara Rao 2020-01-24  2888  	}
6a8544f2f4d900 Appana Durga Kedareswara Rao 2020-01-24  2889  
6a8544f2f4d900 Appana Durga Kedareswara Rao 2020-01-24  2890  	ret = of_address_to_resource(np, 0, &txtsres);
6a8544f2f4d900 Appana Durga Kedareswara Rao 2020-01-24  2891  	if (ret) {
6a8544f2f4d900 Appana Durga Kedareswara Rao 2020-01-24  2892  		dev_err(&pdev->dev, "unable to get Tx Timestamp resource\n");
6a8544f2f4d900 Appana Durga Kedareswara Rao 2020-01-24  2893  		goto free_netdev;
6a8544f2f4d900 Appana Durga Kedareswara Rao 2020-01-24  2894  	}
6a8544f2f4d900 Appana Durga Kedareswara Rao 2020-01-24  2895  
6a8544f2f4d900 Appana Durga Kedareswara Rao 2020-01-24  2896  	lp->tx_ts_regs = devm_ioremap_resource(&pdev->dev, &txtsres);
6a8544f2f4d900 Appana Durga Kedareswara Rao 2020-01-24  2897  	if (IS_ERR(lp->tx_ts_regs)) {
6a8544f2f4d900 Appana Durga Kedareswara Rao 2020-01-24  2898  		dev_err(&pdev->dev, "could not map Tx Timestamp regs\n");
6a8544f2f4d900 Appana Durga Kedareswara Rao 2020-01-24  2899  		ret = PTR_ERR(lp->tx_ts_regs);
6a8544f2f4d900 Appana Durga Kedareswara Rao 2020-01-24  2900  		goto free_netdev;
6a8544f2f4d900 Appana Durga Kedareswara Rao 2020-01-24  2901  	}
6a8544f2f4d900 Appana Durga Kedareswara Rao 2020-01-24  2902  
6a8544f2f4d900 Appana Durga Kedareswara Rao 2020-01-24  2903  	if (lp->axienet_config->mactype == XAXIENET_10G_25G) {
6a8544f2f4d900 Appana Durga Kedareswara Rao 2020-01-24  2904  		np = of_parse_phandle(pdev->dev.of_node, "xlnx,rxtsfifo",
6a8544f2f4d900 Appana Durga Kedareswara Rao 2020-01-24  2905  				      0);
6a8544f2f4d900 Appana Durga Kedareswara Rao 2020-01-24  2906  		if (IS_ERR(np)) {
6a8544f2f4d900 Appana Durga Kedareswara Rao 2020-01-24  2907  			dev_err(&pdev->dev,
6a8544f2f4d900 Appana Durga Kedareswara Rao 2020-01-24  2908  				"couldn't find rx-timestamp FIFO\n");
6a8544f2f4d900 Appana Durga Kedareswara Rao 2020-01-24  2909  			ret = PTR_ERR(np);
6a8544f2f4d900 Appana Durga Kedareswara Rao 2020-01-24  2910  			goto free_netdev;
6a8544f2f4d900 Appana Durga Kedareswara Rao 2020-01-24  2911  		}
6a8544f2f4d900 Appana Durga Kedareswara Rao 2020-01-24  2912  
6a8544f2f4d900 Appana Durga Kedareswara Rao 2020-01-24  2913  		ret = of_address_to_resource(np, 0, &rxtsres);
6a8544f2f4d900 Appana Durga Kedareswara Rao 2020-01-24  2914  		if (ret) {
6a8544f2f4d900 Appana Durga Kedareswara Rao 2020-01-24  2915  			dev_err(&pdev->dev,
6a8544f2f4d900 Appana Durga Kedareswara Rao 2020-01-24  2916  				"unable to get rx-timestamp resource\n");
6a8544f2f4d900 Appana Durga Kedareswara Rao 2020-01-24  2917  			goto free_netdev;
6a8544f2f4d900 Appana Durga Kedareswara Rao 2020-01-24  2918  		}
6a8544f2f4d900 Appana Durga Kedareswara Rao 2020-01-24  2919  
6a8544f2f4d900 Appana Durga Kedareswara Rao 2020-01-24  2920  		lp->rx_ts_regs = devm_ioremap_resource(&pdev->dev, &rxtsres);
6a8544f2f4d900 Appana Durga Kedareswara Rao 2020-01-24  2921  		if (IS_ERR(lp->rx_ts_regs)) {
6a8544f2f4d900 Appana Durga Kedareswara Rao 2020-01-24  2922  			dev_err(&pdev->dev, "couldn't map rx-timestamp regs\n");
6a8544f2f4d900 Appana Durga Kedareswara Rao 2020-01-24  2923  			ret = PTR_ERR(lp->rx_ts_regs);
6a8544f2f4d900 Appana Durga Kedareswara Rao 2020-01-24  2924  			goto free_netdev;
6a8544f2f4d900 Appana Durga Kedareswara Rao 2020-01-24  2925  		}
6a8544f2f4d900 Appana Durga Kedareswara Rao 2020-01-24  2926  		lp->tx_ptpheader = devm_kzalloc(&pdev->dev,
6a8544f2f4d900 Appana Durga Kedareswara Rao 2020-01-24  2927  						XXVENET_TS_HEADER_LEN,
6a8544f2f4d900 Appana Durga Kedareswara Rao 2020-01-24  2928  						GFP_KERNEL);
6a8544f2f4d900 Appana Durga Kedareswara Rao 2020-01-24  2929  	}
6a8544f2f4d900 Appana Durga Kedareswara Rao 2020-01-24  2930  
6a8544f2f4d900 Appana Durga Kedareswara Rao 2020-01-24  2931  	of_node_put(np);
6a8544f2f4d900 Appana Durga Kedareswara Rao 2020-01-24  2932  #endif
0f447249ba4872 Saurabh Sengar               2020-01-24  2933  	if (!slave) {
0f447249ba4872 Saurabh Sengar               2020-01-24  2934  #ifdef CONFIG_AXIENET_HAS_MCDMA
0f447249ba4872 Saurabh Sengar               2020-01-24  2935  		ret = axienet_mcdma_probe(pdev, lp, ndev);
0f447249ba4872 Saurabh Sengar               2020-01-24  2936  #else
0f447249ba4872 Saurabh Sengar               2020-01-24  2937  		ret = axienet_dma_probe(pdev, ndev);
0f447249ba4872 Saurabh Sengar               2020-01-24  2938  #endif
b482f0a0aa9973 Radhey Shyam Pandey          2020-01-24  2939  		if (ret) {
0f447249ba4872 Saurabh Sengar               2020-01-24  2940  			pr_err("Getting DMA resource failed\n");
46aa27df885321 Srikanth Thokala             2015-05-05  2941  			goto free_netdev;
8a3b7a252dca9f Daniel Borkmann              2012-01-19  2942  		}
9e8ce9d565663f Appana Durga Kedareswara Rao 2020-01-24  2943  
0f447249ba4872 Saurabh Sengar               2020-01-24  2944  		if (dma_set_mask_and_coherent(lp->dev, DMA_BIT_MASK(lp->dma_mask)) != 0) {
0f447249ba4872 Saurabh Sengar               2020-01-24  2945  			dev_warn(&pdev->dev, "default to %d-bit dma mask\n", XAE_DMA_MASK_MIN);
0f447249ba4872 Saurabh Sengar               2020-01-24  2946  			if (dma_set_mask_and_coherent(lp->dev, DMA_BIT_MASK(XAE_DMA_MASK_MIN)) != 0) {
0f447249ba4872 Saurabh Sengar               2020-01-24  2947  				dev_err(&pdev->dev, "dma_set_mask_and_coherent failed, aborting\n");
46aa27df885321 Srikanth Thokala             2015-05-05 @2948  				goto free_netdev;
8a3b7a252dca9f Daniel Borkmann              2012-01-19  2949  			}
0f447249ba4872 Saurabh Sengar               2020-01-24  2950  		}
57b6ef54c85dd8 Appana Durga Kedareswara Rao 2020-01-24  2951  
b5d3f74c95f046 Appana Durga Kedareswara Rao 2020-01-24  2952  		ret = axienet_dma_clk_init(pdev);
b5d3f74c95f046 Appana Durga Kedareswara Rao 2020-01-24  2953  		if (ret) {
b5d3f74c95f046 Appana Durga Kedareswara Rao 2020-01-24  2954  			if (ret != -EPROBE_DEFER)
b5d3f74c95f046 Appana Durga Kedareswara Rao 2020-01-24  2955  				dev_err(&pdev->dev, "DMA clock init failed %d\n", ret);
b5d3f74c95f046 Appana Durga Kedareswara Rao 2020-01-24  2956  			goto free_netdev;
b5d3f74c95f046 Appana Durga Kedareswara Rao 2020-01-24  2957  		}
0f447249ba4872 Saurabh Sengar               2020-01-24  2958  	}
b5d3f74c95f046 Appana Durga Kedareswara Rao 2020-01-24  2959  
b5d3f74c95f046 Appana Durga Kedareswara Rao 2020-01-24  2960  	ret = axienet_clk_init(pdev, &lp->aclk, &lp->eth_sclk,
b5d3f74c95f046 Appana Durga Kedareswara Rao 2020-01-24  2961  			       &lp->eth_refclk, &lp->eth_dclk);
b5d3f74c95f046 Appana Durga Kedareswara Rao 2020-01-24  2962  	if (ret) {
b5d3f74c95f046 Appana Durga Kedareswara Rao 2020-01-24  2963  		if (ret != -EPROBE_DEFER)
b5d3f74c95f046 Appana Durga Kedareswara Rao 2020-01-24  2964  			dev_err(&pdev->dev, "Ethernet clock init failed %d\n", ret);
b5d3f74c95f046 Appana Durga Kedareswara Rao 2020-01-24  2965  		goto err_disable_clk;
b5d3f74c95f046 Appana Durga Kedareswara Rao 2020-01-24  2966  	}
b5d3f74c95f046 Appana Durga Kedareswara Rao 2020-01-24  2967  
0f447249ba4872 Saurabh Sengar               2020-01-24  2968  	lp->eth_irq = platform_get_irq(pdev, 0);
0f447249ba4872 Saurabh Sengar               2020-01-24  2969  	/* Check for Ethernet core IRQ (optional) */
0f447249ba4872 Saurabh Sengar               2020-01-24  2970  	if (lp->eth_irq <= 0)
0f447249ba4872 Saurabh Sengar               2020-01-24  2971  		dev_info(&pdev->dev, "Ethernet core IRQ not defined\n");
0f447249ba4872 Saurabh Sengar               2020-01-24  2972  
8a3b7a252dca9f Daniel Borkmann              2012-01-19  2973  	/* Retrieve the MAC address */
da90e38003e2f0 Tobias Klauser               2016-12-07  2974  	mac_addr = of_get_mac_address(pdev->dev.of_node);
a51645f70f6384 Petr Štetiar                 2019-05-06  2975  	if (IS_ERR(mac_addr)) {
d05a9ed5c3a773 Robert Hancock               2019-06-06  2976  		dev_warn(&pdev->dev, "could not find MAC address property: %ld\n",
d05a9ed5c3a773 Robert Hancock               2019-06-06  2977  			 PTR_ERR(mac_addr));
d05a9ed5c3a773 Robert Hancock               2019-06-06  2978  		mac_addr = NULL;
8a3b7a252dca9f Daniel Borkmann              2012-01-19  2979  	}
da90e38003e2f0 Tobias Klauser               2016-12-07  2980  	axienet_set_mac_address(ndev, mac_addr);
8a3b7a252dca9f Daniel Borkmann              2012-01-19  2981  
8a3b7a252dca9f Daniel Borkmann              2012-01-19  2982  	lp->coalesce_count_rx = XAXIDMA_DFT_RX_THRESHOLD;
8a3b7a252dca9f Daniel Borkmann              2012-01-19  2983  	lp->coalesce_count_tx = XAXIDMA_DFT_TX_THRESHOLD;
8a3b7a252dca9f Daniel Borkmann              2012-01-19  2984  
95219aa538e11d Srikanth Thokala             2015-05-05  2985  	lp->phy_node = of_parse_phandle(pdev->dev.of_node, "phy-handle", 0);
46aa27df885321 Srikanth Thokala             2015-05-05  2986  	if (lp->phy_node) {
09a0354cadec26 Robert Hancock               2019-06-06  2987  		lp->clk = devm_clk_get(&pdev->dev, NULL);
09a0354cadec26 Robert Hancock               2019-06-06  2988  		if (IS_ERR(lp->clk)) {
09a0354cadec26 Robert Hancock               2019-06-06  2989  			dev_warn(&pdev->dev, "Failed to get clock: %ld\n",
09a0354cadec26 Robert Hancock               2019-06-06  2990  				 PTR_ERR(lp->clk));
09a0354cadec26 Robert Hancock               2019-06-06  2991  			lp->clk = NULL;
09a0354cadec26 Robert Hancock               2019-06-06  2992  		} else {
09a0354cadec26 Robert Hancock               2019-06-06  2993  			ret = clk_prepare_enable(lp->clk);
09a0354cadec26 Robert Hancock               2019-06-06  2994  			if (ret) {
09a0354cadec26 Robert Hancock               2019-06-06  2995  				dev_err(&pdev->dev, "Unable to enable clock: %d\n",
09a0354cadec26 Robert Hancock               2019-06-06  2996  					ret);
09a0354cadec26 Robert Hancock               2019-06-06  2997  				goto free_netdev;
09a0354cadec26 Robert Hancock               2019-06-06  2998  			}
09a0354cadec26 Robert Hancock               2019-06-06  2999  		}
09a0354cadec26 Robert Hancock               2019-06-06  3000  
09a0354cadec26 Robert Hancock               2019-06-06  3001  		ret = axienet_mdio_setup(lp);
8a3b7a252dca9f Daniel Borkmann              2012-01-19  3002  		if (ret)
09a0354cadec26 Robert Hancock               2019-06-06  3003  			dev_warn(&pdev->dev,
09a0354cadec26 Robert Hancock               2019-06-06  3004  				 "error registering MDIO bus: %d\n", ret);
8a3b7a252dca9f Daniel Borkmann              2012-01-19  3005  
f5203a3d9b25fa Robert Hancock               2019-06-06  3006  		lp->phylink_config.dev = &ndev->dev;
f5203a3d9b25fa Robert Hancock               2019-06-06  3007  		lp->phylink_config.type = PHYLINK_NETDEV;
f5203a3d9b25fa Robert Hancock               2019-06-06  3008  
f5203a3d9b25fa Robert Hancock               2019-06-06  3009  		lp->phylink = phylink_create(&lp->phylink_config, pdev->dev.fwnode,
f5203a3d9b25fa Robert Hancock               2019-06-06  3010  					     lp->phy_mode,
f5203a3d9b25fa Robert Hancock               2019-06-06  3011  					     &axienet_phylink_ops);
f5203a3d9b25fa Robert Hancock               2019-06-06  3012  		if (IS_ERR(lp->phylink)) {
f5203a3d9b25fa Robert Hancock               2019-06-06  3013  			ret = PTR_ERR(lp->phylink);
f5203a3d9b25fa Robert Hancock               2019-06-06  3014  			dev_err(&pdev->dev, "phylink_create error (%i)\n", ret);
f5203a3d9b25fa Robert Hancock               2019-06-06  3015  			goto free_netdev;
f5203a3d9b25fa Robert Hancock               2019-06-06  3016  		}
73308b8fbe6790 Appana Durga Kedareswara Rao 2020-01-24  3017  	}
f5203a3d9b25fa Robert Hancock               2019-06-06  3018  

:::::: The code at line 2948 was first introduced by commit
:::::: 46aa27df88532146974628602b6f5cc587422388 net: axienet: Use devm_* calls

:::::: TO: Srikanth Thokala <srikanth.thokala@xilinx.com>
:::::: CC: David S. Miller <davem@davemloft.net>

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org

[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 34786 bytes --]

             reply	other threads:[~2021-02-10 10:13 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-02-10 10:13 kernel test robot [this message]
  -- strict thread matches above, loose matches on Subject: below --
2021-02-10 12:10 [xlnx:master 9663/10510] drivers/net/ethernet/xilinx/xilinx_axienet_main.c:2948 axienet_probe() warn: missing error code 'ret' Dan Carpenter
2021-02-10 12:10 ` Dan Carpenter
2021-02-10 12:10 ` Dan Carpenter

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=202102101833.FrM8Jdkv-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=kbuild@lists.01.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.