All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: Qing Wang <wangqing@vivo.com>,
	Madalin Bucur <madalin.bucur@nxp.com>,
	"David S. Miller" <davem@davemloft.net>,
	Jakub Kicinski <kuba@kernel.org>,
	linux-kernel@vger.kernel.org
Cc: llvm@lists.linux.dev, kbuild-all@lists.01.org,
	netdev@vger.kernel.org, Wang Qing <wangqing@vivo.com>
Subject: Re: [PATCH] ethernet: fman: add missing put_device() call in fman_port_probe()
Date: Wed, 8 Dec 2021 04:36:05 +0800	[thread overview]
Message-ID: <202112080417.7Js3IaI3-lkp@intel.com> (raw)
In-Reply-To: <1638881746-3215-1-git-send-email-wangqing@vivo.com>

Hi Qing,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on net-next/master]
[also build test WARNING on net/master horms-ipvs/master linus/master v5.16-rc4 next-20211207]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]

url:    https://github.com/0day-ci/linux/commits/Qing-Wang/ethernet-fman-add-missing-put_device-call-in-fman_port_probe/20211207-210146
base:   https://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git 1c5526968e270e4efccfa1da21d211a4915cdeda
config: hexagon-buildonly-randconfig-r005-20211207 (https://download.01.org/0day-ci/archive/20211208/202112080417.7Js3IaI3-lkp@intel.com/config)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project 097a1cb1d5ebb3a0ec4bcaed8ba3ff6a8e33c00a)
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/0day-ci/linux/commit/72dfcb1946c5b8a0eca2806c574922ebbd990b49
        git remote add linux-review https://github.com/0day-ci/linux
        git fetch --no-tags linux-review Qing-Wang/ethernet-fman-add-missing-put_device-call-in-fman_port_probe/20211207-210146
        git checkout 72dfcb1946c5b8a0eca2806c574922ebbd990b49
        # save the config file to linux build tree
        mkdir build_dir
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=hexagon SHELL=/bin/bash drivers/net/ethernet/freescale/fman/

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

All warnings (new ones prefixed by >>):

>> drivers/net/ethernet/freescale/fman/fman_port.c:1903:1: warning: unused label 'free_port' [-Wunused-label]
   free_port:
   ^~~~~~~~~~
   1 warning generated.


vim +/free_port +1903 drivers/net/ethernet/freescale/fman/fman_port.c

880f874cf50568 Yangbo Lu         2018-06-25  1767  
18a6c85fcc78dd Igal Liberman     2015-12-21  1768  static int fman_port_probe(struct platform_device *of_dev)
18a6c85fcc78dd Igal Liberman     2015-12-21  1769  {
18a6c85fcc78dd Igal Liberman     2015-12-21  1770  	struct fman_port *port;
18a6c85fcc78dd Igal Liberman     2015-12-21  1771  	struct fman *fman;
18a6c85fcc78dd Igal Liberman     2015-12-21  1772  	struct device_node *fm_node, *port_node;
0572054617f326 Florinel Iordache 2020-08-03  1773  	struct platform_device *fm_pdev;
18a6c85fcc78dd Igal Liberman     2015-12-21  1774  	struct resource res;
18a6c85fcc78dd Igal Liberman     2015-12-21  1775  	struct resource *dev_res;
537a31658f8a01 Madalin Bucur     2016-05-16  1776  	u32 val;
18a6c85fcc78dd Igal Liberman     2015-12-21  1777  	int err = 0, lenp;
18a6c85fcc78dd Igal Liberman     2015-12-21  1778  	enum fman_port_type port_type;
18a6c85fcc78dd Igal Liberman     2015-12-21  1779  	u16 port_speed;
18a6c85fcc78dd Igal Liberman     2015-12-21  1780  	u8 port_id;
18a6c85fcc78dd Igal Liberman     2015-12-21  1781  
18a6c85fcc78dd Igal Liberman     2015-12-21  1782  	port = kzalloc(sizeof(*port), GFP_KERNEL);
18a6c85fcc78dd Igal Liberman     2015-12-21  1783  	if (!port)
18a6c85fcc78dd Igal Liberman     2015-12-21  1784  		return -ENOMEM;
18a6c85fcc78dd Igal Liberman     2015-12-21  1785  
18a6c85fcc78dd Igal Liberman     2015-12-21  1786  	port->dev = &of_dev->dev;
18a6c85fcc78dd Igal Liberman     2015-12-21  1787  
18a6c85fcc78dd Igal Liberman     2015-12-21  1788  	port_node = of_node_get(of_dev->dev.of_node);
18a6c85fcc78dd Igal Liberman     2015-12-21  1789  
18a6c85fcc78dd Igal Liberman     2015-12-21  1790  	/* Get the FM node */
18a6c85fcc78dd Igal Liberman     2015-12-21  1791  	fm_node = of_get_parent(port_node);
18a6c85fcc78dd Igal Liberman     2015-12-21  1792  	if (!fm_node) {
18a6c85fcc78dd Igal Liberman     2015-12-21  1793  		dev_err(port->dev, "%s: of_get_parent() failed\n", __func__);
18a6c85fcc78dd Igal Liberman     2015-12-21  1794  		err = -ENODEV;
72dfcb1946c5b8 Wang Qing         2021-12-07  1795  		goto return_of_node_put;
18a6c85fcc78dd Igal Liberman     2015-12-21  1796  	}
18a6c85fcc78dd Igal Liberman     2015-12-21  1797  
0572054617f326 Florinel Iordache 2020-08-03  1798  	fm_pdev = of_find_device_by_node(fm_node);
18a6c85fcc78dd Igal Liberman     2015-12-21  1799  	of_node_put(fm_node);
0572054617f326 Florinel Iordache 2020-08-03  1800  	if (!fm_pdev) {
0572054617f326 Florinel Iordache 2020-08-03  1801  		err = -EINVAL;
72dfcb1946c5b8 Wang Qing         2021-12-07  1802  		goto return_of_node_put;
0572054617f326 Florinel Iordache 2020-08-03  1803  	}
0572054617f326 Florinel Iordache 2020-08-03  1804  
0572054617f326 Florinel Iordache 2020-08-03  1805  	fman = dev_get_drvdata(&fm_pdev->dev);
18a6c85fcc78dd Igal Liberman     2015-12-21  1806  	if (!fman) {
18a6c85fcc78dd Igal Liberman     2015-12-21  1807  		err = -EINVAL;
72dfcb1946c5b8 Wang Qing         2021-12-07  1808  		goto return_of_put_device;
18a6c85fcc78dd Igal Liberman     2015-12-21  1809  	}
18a6c85fcc78dd Igal Liberman     2015-12-21  1810  
537a31658f8a01 Madalin Bucur     2016-05-16  1811  	err = of_property_read_u32(port_node, "cell-index", &val);
537a31658f8a01 Madalin Bucur     2016-05-16  1812  	if (err) {
f7ce91038d5278 Rob Herring       2017-07-18  1813  		dev_err(port->dev, "%s: reading cell-index for %pOF failed\n",
f7ce91038d5278 Rob Herring       2017-07-18  1814  			__func__, port_node);
18a6c85fcc78dd Igal Liberman     2015-12-21  1815  		err = -EINVAL;
72dfcb1946c5b8 Wang Qing         2021-12-07  1816  		goto return_of_put_device;
18a6c85fcc78dd Igal Liberman     2015-12-21  1817  	}
537a31658f8a01 Madalin Bucur     2016-05-16  1818  	port_id = (u8)val;
18a6c85fcc78dd Igal Liberman     2015-12-21  1819  	port->dts_params.id = port_id;
18a6c85fcc78dd Igal Liberman     2015-12-21  1820  
18a6c85fcc78dd Igal Liberman     2015-12-21  1821  	if (of_device_is_compatible(port_node, "fsl,fman-v3-port-tx")) {
18a6c85fcc78dd Igal Liberman     2015-12-21  1822  		port_type = FMAN_PORT_TYPE_TX;
18a6c85fcc78dd Igal Liberman     2015-12-21  1823  		port_speed = 1000;
537a31658f8a01 Madalin Bucur     2016-05-16  1824  		if (of_find_property(port_node, "fsl,fman-10g-port", &lenp))
18a6c85fcc78dd Igal Liberman     2015-12-21  1825  			port_speed = 10000;
18a6c85fcc78dd Igal Liberman     2015-12-21  1826  
18a6c85fcc78dd Igal Liberman     2015-12-21  1827  	} else if (of_device_is_compatible(port_node, "fsl,fman-v2-port-tx")) {
18a6c85fcc78dd Igal Liberman     2015-12-21  1828  		if (port_id >= TX_10G_PORT_BASE)
18a6c85fcc78dd Igal Liberman     2015-12-21  1829  			port_speed = 10000;
18a6c85fcc78dd Igal Liberman     2015-12-21  1830  		else
18a6c85fcc78dd Igal Liberman     2015-12-21  1831  			port_speed = 1000;
18a6c85fcc78dd Igal Liberman     2015-12-21  1832  		port_type = FMAN_PORT_TYPE_TX;
18a6c85fcc78dd Igal Liberman     2015-12-21  1833  
18a6c85fcc78dd Igal Liberman     2015-12-21  1834  	} else if (of_device_is_compatible(port_node, "fsl,fman-v3-port-rx")) {
18a6c85fcc78dd Igal Liberman     2015-12-21  1835  		port_type = FMAN_PORT_TYPE_RX;
18a6c85fcc78dd Igal Liberman     2015-12-21  1836  		port_speed = 1000;
537a31658f8a01 Madalin Bucur     2016-05-16  1837  		if (of_find_property(port_node, "fsl,fman-10g-port", &lenp))
18a6c85fcc78dd Igal Liberman     2015-12-21  1838  			port_speed = 10000;
18a6c85fcc78dd Igal Liberman     2015-12-21  1839  
18a6c85fcc78dd Igal Liberman     2015-12-21  1840  	} else if (of_device_is_compatible(port_node, "fsl,fman-v2-port-rx")) {
18a6c85fcc78dd Igal Liberman     2015-12-21  1841  		if (port_id >= RX_10G_PORT_BASE)
18a6c85fcc78dd Igal Liberman     2015-12-21  1842  			port_speed = 10000;
18a6c85fcc78dd Igal Liberman     2015-12-21  1843  		else
18a6c85fcc78dd Igal Liberman     2015-12-21  1844  			port_speed = 1000;
18a6c85fcc78dd Igal Liberman     2015-12-21  1845  		port_type = FMAN_PORT_TYPE_RX;
18a6c85fcc78dd Igal Liberman     2015-12-21  1846  
18a6c85fcc78dd Igal Liberman     2015-12-21  1847  	}  else {
18a6c85fcc78dd Igal Liberman     2015-12-21  1848  		dev_err(port->dev, "%s: Illegal port type\n", __func__);
18a6c85fcc78dd Igal Liberman     2015-12-21  1849  		err = -EINVAL;
72dfcb1946c5b8 Wang Qing         2021-12-07  1850  		goto return_of_put_device;
18a6c85fcc78dd Igal Liberman     2015-12-21  1851  	}
18a6c85fcc78dd Igal Liberman     2015-12-21  1852  
18a6c85fcc78dd Igal Liberman     2015-12-21  1853  	port->dts_params.type = port_type;
18a6c85fcc78dd Igal Liberman     2015-12-21  1854  	port->dts_params.speed = port_speed;
18a6c85fcc78dd Igal Liberman     2015-12-21  1855  
18a6c85fcc78dd Igal Liberman     2015-12-21  1856  	if (port_type == FMAN_PORT_TYPE_TX) {
18a6c85fcc78dd Igal Liberman     2015-12-21  1857  		u32 qman_channel_id;
18a6c85fcc78dd Igal Liberman     2015-12-21  1858  
18a6c85fcc78dd Igal Liberman     2015-12-21  1859  		qman_channel_id = fman_get_qman_channel_id(fman, port_id);
18a6c85fcc78dd Igal Liberman     2015-12-21  1860  		if (qman_channel_id == 0) {
18a6c85fcc78dd Igal Liberman     2015-12-21  1861  			dev_err(port->dev, "%s: incorrect qman-channel-id\n",
18a6c85fcc78dd Igal Liberman     2015-12-21  1862  				__func__);
18a6c85fcc78dd Igal Liberman     2015-12-21  1863  			err = -EINVAL;
72dfcb1946c5b8 Wang Qing         2021-12-07  1864  			goto return_of_put_device;
18a6c85fcc78dd Igal Liberman     2015-12-21  1865  		}
18a6c85fcc78dd Igal Liberman     2015-12-21  1866  		port->dts_params.qman_channel_id = qman_channel_id;
18a6c85fcc78dd Igal Liberman     2015-12-21  1867  	}
18a6c85fcc78dd Igal Liberman     2015-12-21  1868  
18a6c85fcc78dd Igal Liberman     2015-12-21  1869  	err = of_address_to_resource(port_node, 0, &res);
18a6c85fcc78dd Igal Liberman     2015-12-21  1870  	if (err < 0) {
18a6c85fcc78dd Igal Liberman     2015-12-21  1871  		dev_err(port->dev, "%s: of_address_to_resource() failed\n",
18a6c85fcc78dd Igal Liberman     2015-12-21  1872  			__func__);
18a6c85fcc78dd Igal Liberman     2015-12-21  1873  		err = -ENOMEM;
72dfcb1946c5b8 Wang Qing         2021-12-07  1874  		goto return_of_put_device;
18a6c85fcc78dd Igal Liberman     2015-12-21  1875  	}
18a6c85fcc78dd Igal Liberman     2015-12-21  1876  
18a6c85fcc78dd Igal Liberman     2015-12-21  1877  	port->dts_params.fman = fman;
18a6c85fcc78dd Igal Liberman     2015-12-21  1878  
18a6c85fcc78dd Igal Liberman     2015-12-21  1879  	dev_res = __devm_request_region(port->dev, &res, res.start,
18a6c85fcc78dd Igal Liberman     2015-12-21  1880  					resource_size(&res), "fman-port");
18a6c85fcc78dd Igal Liberman     2015-12-21  1881  	if (!dev_res) {
18a6c85fcc78dd Igal Liberman     2015-12-21  1882  		dev_err(port->dev, "%s: __devm_request_region() failed\n",
18a6c85fcc78dd Igal Liberman     2015-12-21  1883  			__func__);
18a6c85fcc78dd Igal Liberman     2015-12-21  1884  		err = -EINVAL;
72dfcb1946c5b8 Wang Qing         2021-12-07  1885  		goto return_of_put_device;
18a6c85fcc78dd Igal Liberman     2015-12-21  1886  	}
18a6c85fcc78dd Igal Liberman     2015-12-21  1887  
18a6c85fcc78dd Igal Liberman     2015-12-21  1888  	port->dts_params.base_addr = devm_ioremap(port->dev, res.start,
18a6c85fcc78dd Igal Liberman     2015-12-21  1889  						  resource_size(&res));
5df6f7fa47e030 Madalin Bucur     2016-03-22  1890  	if (!port->dts_params.base_addr)
18a6c85fcc78dd Igal Liberman     2015-12-21  1891  		dev_err(port->dev, "%s: devm_ioremap() failed\n", __func__);
18a6c85fcc78dd Igal Liberman     2015-12-21  1892  
72dfcb1946c5b8 Wang Qing         2021-12-07  1893  	of_node_put(port_node);
72dfcb1946c5b8 Wang Qing         2021-12-07  1894  
18a6c85fcc78dd Igal Liberman     2015-12-21  1895  	dev_set_drvdata(&of_dev->dev, port);
18a6c85fcc78dd Igal Liberman     2015-12-21  1896  
18a6c85fcc78dd Igal Liberman     2015-12-21  1897  	return 0;
18a6c85fcc78dd Igal Liberman     2015-12-21  1898  
72dfcb1946c5b8 Wang Qing         2021-12-07  1899  return_of_put_device:
72dfcb1946c5b8 Wang Qing         2021-12-07  1900  	put_device(&fm_pdev->dev);
72dfcb1946c5b8 Wang Qing         2021-12-07  1901  return_of_node_put:
18a6c85fcc78dd Igal Liberman     2015-12-21  1902  	of_node_put(port_node);
18a6c85fcc78dd Igal Liberman     2015-12-21 @1903  free_port:
18a6c85fcc78dd Igal Liberman     2015-12-21  1904  	kfree(port);
18a6c85fcc78dd Igal Liberman     2015-12-21  1905  	return err;
18a6c85fcc78dd Igal Liberman     2015-12-21  1906  }
18a6c85fcc78dd Igal Liberman     2015-12-21  1907  

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

WARNING: multiple messages have this Message-ID (diff)
From: kernel test robot <lkp@intel.com>
To: kbuild-all@lists.01.org
Subject: Re: [PATCH] ethernet: fman: add missing put_device() call in fman_port_probe()
Date: Wed, 08 Dec 2021 04:36:05 +0800	[thread overview]
Message-ID: <202112080417.7Js3IaI3-lkp@intel.com> (raw)
In-Reply-To: <1638881746-3215-1-git-send-email-wangqing@vivo.com>

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

Hi Qing,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on net-next/master]
[also build test WARNING on net/master horms-ipvs/master linus/master v5.16-rc4 next-20211207]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]

url:    https://github.com/0day-ci/linux/commits/Qing-Wang/ethernet-fman-add-missing-put_device-call-in-fman_port_probe/20211207-210146
base:   https://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git 1c5526968e270e4efccfa1da21d211a4915cdeda
config: hexagon-buildonly-randconfig-r005-20211207 (https://download.01.org/0day-ci/archive/20211208/202112080417.7Js3IaI3-lkp(a)intel.com/config)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project 097a1cb1d5ebb3a0ec4bcaed8ba3ff6a8e33c00a)
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/0day-ci/linux/commit/72dfcb1946c5b8a0eca2806c574922ebbd990b49
        git remote add linux-review https://github.com/0day-ci/linux
        git fetch --no-tags linux-review Qing-Wang/ethernet-fman-add-missing-put_device-call-in-fman_port_probe/20211207-210146
        git checkout 72dfcb1946c5b8a0eca2806c574922ebbd990b49
        # save the config file to linux build tree
        mkdir build_dir
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=hexagon SHELL=/bin/bash drivers/net/ethernet/freescale/fman/

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

All warnings (new ones prefixed by >>):

>> drivers/net/ethernet/freescale/fman/fman_port.c:1903:1: warning: unused label 'free_port' [-Wunused-label]
   free_port:
   ^~~~~~~~~~
   1 warning generated.


vim +/free_port +1903 drivers/net/ethernet/freescale/fman/fman_port.c

880f874cf50568 Yangbo Lu         2018-06-25  1767  
18a6c85fcc78dd Igal Liberman     2015-12-21  1768  static int fman_port_probe(struct platform_device *of_dev)
18a6c85fcc78dd Igal Liberman     2015-12-21  1769  {
18a6c85fcc78dd Igal Liberman     2015-12-21  1770  	struct fman_port *port;
18a6c85fcc78dd Igal Liberman     2015-12-21  1771  	struct fman *fman;
18a6c85fcc78dd Igal Liberman     2015-12-21  1772  	struct device_node *fm_node, *port_node;
0572054617f326 Florinel Iordache 2020-08-03  1773  	struct platform_device *fm_pdev;
18a6c85fcc78dd Igal Liberman     2015-12-21  1774  	struct resource res;
18a6c85fcc78dd Igal Liberman     2015-12-21  1775  	struct resource *dev_res;
537a31658f8a01 Madalin Bucur     2016-05-16  1776  	u32 val;
18a6c85fcc78dd Igal Liberman     2015-12-21  1777  	int err = 0, lenp;
18a6c85fcc78dd Igal Liberman     2015-12-21  1778  	enum fman_port_type port_type;
18a6c85fcc78dd Igal Liberman     2015-12-21  1779  	u16 port_speed;
18a6c85fcc78dd Igal Liberman     2015-12-21  1780  	u8 port_id;
18a6c85fcc78dd Igal Liberman     2015-12-21  1781  
18a6c85fcc78dd Igal Liberman     2015-12-21  1782  	port = kzalloc(sizeof(*port), GFP_KERNEL);
18a6c85fcc78dd Igal Liberman     2015-12-21  1783  	if (!port)
18a6c85fcc78dd Igal Liberman     2015-12-21  1784  		return -ENOMEM;
18a6c85fcc78dd Igal Liberman     2015-12-21  1785  
18a6c85fcc78dd Igal Liberman     2015-12-21  1786  	port->dev = &of_dev->dev;
18a6c85fcc78dd Igal Liberman     2015-12-21  1787  
18a6c85fcc78dd Igal Liberman     2015-12-21  1788  	port_node = of_node_get(of_dev->dev.of_node);
18a6c85fcc78dd Igal Liberman     2015-12-21  1789  
18a6c85fcc78dd Igal Liberman     2015-12-21  1790  	/* Get the FM node */
18a6c85fcc78dd Igal Liberman     2015-12-21  1791  	fm_node = of_get_parent(port_node);
18a6c85fcc78dd Igal Liberman     2015-12-21  1792  	if (!fm_node) {
18a6c85fcc78dd Igal Liberman     2015-12-21  1793  		dev_err(port->dev, "%s: of_get_parent() failed\n", __func__);
18a6c85fcc78dd Igal Liberman     2015-12-21  1794  		err = -ENODEV;
72dfcb1946c5b8 Wang Qing         2021-12-07  1795  		goto return_of_node_put;
18a6c85fcc78dd Igal Liberman     2015-12-21  1796  	}
18a6c85fcc78dd Igal Liberman     2015-12-21  1797  
0572054617f326 Florinel Iordache 2020-08-03  1798  	fm_pdev = of_find_device_by_node(fm_node);
18a6c85fcc78dd Igal Liberman     2015-12-21  1799  	of_node_put(fm_node);
0572054617f326 Florinel Iordache 2020-08-03  1800  	if (!fm_pdev) {
0572054617f326 Florinel Iordache 2020-08-03  1801  		err = -EINVAL;
72dfcb1946c5b8 Wang Qing         2021-12-07  1802  		goto return_of_node_put;
0572054617f326 Florinel Iordache 2020-08-03  1803  	}
0572054617f326 Florinel Iordache 2020-08-03  1804  
0572054617f326 Florinel Iordache 2020-08-03  1805  	fman = dev_get_drvdata(&fm_pdev->dev);
18a6c85fcc78dd Igal Liberman     2015-12-21  1806  	if (!fman) {
18a6c85fcc78dd Igal Liberman     2015-12-21  1807  		err = -EINVAL;
72dfcb1946c5b8 Wang Qing         2021-12-07  1808  		goto return_of_put_device;
18a6c85fcc78dd Igal Liberman     2015-12-21  1809  	}
18a6c85fcc78dd Igal Liberman     2015-12-21  1810  
537a31658f8a01 Madalin Bucur     2016-05-16  1811  	err = of_property_read_u32(port_node, "cell-index", &val);
537a31658f8a01 Madalin Bucur     2016-05-16  1812  	if (err) {
f7ce91038d5278 Rob Herring       2017-07-18  1813  		dev_err(port->dev, "%s: reading cell-index for %pOF failed\n",
f7ce91038d5278 Rob Herring       2017-07-18  1814  			__func__, port_node);
18a6c85fcc78dd Igal Liberman     2015-12-21  1815  		err = -EINVAL;
72dfcb1946c5b8 Wang Qing         2021-12-07  1816  		goto return_of_put_device;
18a6c85fcc78dd Igal Liberman     2015-12-21  1817  	}
537a31658f8a01 Madalin Bucur     2016-05-16  1818  	port_id = (u8)val;
18a6c85fcc78dd Igal Liberman     2015-12-21  1819  	port->dts_params.id = port_id;
18a6c85fcc78dd Igal Liberman     2015-12-21  1820  
18a6c85fcc78dd Igal Liberman     2015-12-21  1821  	if (of_device_is_compatible(port_node, "fsl,fman-v3-port-tx")) {
18a6c85fcc78dd Igal Liberman     2015-12-21  1822  		port_type = FMAN_PORT_TYPE_TX;
18a6c85fcc78dd Igal Liberman     2015-12-21  1823  		port_speed = 1000;
537a31658f8a01 Madalin Bucur     2016-05-16  1824  		if (of_find_property(port_node, "fsl,fman-10g-port", &lenp))
18a6c85fcc78dd Igal Liberman     2015-12-21  1825  			port_speed = 10000;
18a6c85fcc78dd Igal Liberman     2015-12-21  1826  
18a6c85fcc78dd Igal Liberman     2015-12-21  1827  	} else if (of_device_is_compatible(port_node, "fsl,fman-v2-port-tx")) {
18a6c85fcc78dd Igal Liberman     2015-12-21  1828  		if (port_id >= TX_10G_PORT_BASE)
18a6c85fcc78dd Igal Liberman     2015-12-21  1829  			port_speed = 10000;
18a6c85fcc78dd Igal Liberman     2015-12-21  1830  		else
18a6c85fcc78dd Igal Liberman     2015-12-21  1831  			port_speed = 1000;
18a6c85fcc78dd Igal Liberman     2015-12-21  1832  		port_type = FMAN_PORT_TYPE_TX;
18a6c85fcc78dd Igal Liberman     2015-12-21  1833  
18a6c85fcc78dd Igal Liberman     2015-12-21  1834  	} else if (of_device_is_compatible(port_node, "fsl,fman-v3-port-rx")) {
18a6c85fcc78dd Igal Liberman     2015-12-21  1835  		port_type = FMAN_PORT_TYPE_RX;
18a6c85fcc78dd Igal Liberman     2015-12-21  1836  		port_speed = 1000;
537a31658f8a01 Madalin Bucur     2016-05-16  1837  		if (of_find_property(port_node, "fsl,fman-10g-port", &lenp))
18a6c85fcc78dd Igal Liberman     2015-12-21  1838  			port_speed = 10000;
18a6c85fcc78dd Igal Liberman     2015-12-21  1839  
18a6c85fcc78dd Igal Liberman     2015-12-21  1840  	} else if (of_device_is_compatible(port_node, "fsl,fman-v2-port-rx")) {
18a6c85fcc78dd Igal Liberman     2015-12-21  1841  		if (port_id >= RX_10G_PORT_BASE)
18a6c85fcc78dd Igal Liberman     2015-12-21  1842  			port_speed = 10000;
18a6c85fcc78dd Igal Liberman     2015-12-21  1843  		else
18a6c85fcc78dd Igal Liberman     2015-12-21  1844  			port_speed = 1000;
18a6c85fcc78dd Igal Liberman     2015-12-21  1845  		port_type = FMAN_PORT_TYPE_RX;
18a6c85fcc78dd Igal Liberman     2015-12-21  1846  
18a6c85fcc78dd Igal Liberman     2015-12-21  1847  	}  else {
18a6c85fcc78dd Igal Liberman     2015-12-21  1848  		dev_err(port->dev, "%s: Illegal port type\n", __func__);
18a6c85fcc78dd Igal Liberman     2015-12-21  1849  		err = -EINVAL;
72dfcb1946c5b8 Wang Qing         2021-12-07  1850  		goto return_of_put_device;
18a6c85fcc78dd Igal Liberman     2015-12-21  1851  	}
18a6c85fcc78dd Igal Liberman     2015-12-21  1852  
18a6c85fcc78dd Igal Liberman     2015-12-21  1853  	port->dts_params.type = port_type;
18a6c85fcc78dd Igal Liberman     2015-12-21  1854  	port->dts_params.speed = port_speed;
18a6c85fcc78dd Igal Liberman     2015-12-21  1855  
18a6c85fcc78dd Igal Liberman     2015-12-21  1856  	if (port_type == FMAN_PORT_TYPE_TX) {
18a6c85fcc78dd Igal Liberman     2015-12-21  1857  		u32 qman_channel_id;
18a6c85fcc78dd Igal Liberman     2015-12-21  1858  
18a6c85fcc78dd Igal Liberman     2015-12-21  1859  		qman_channel_id = fman_get_qman_channel_id(fman, port_id);
18a6c85fcc78dd Igal Liberman     2015-12-21  1860  		if (qman_channel_id == 0) {
18a6c85fcc78dd Igal Liberman     2015-12-21  1861  			dev_err(port->dev, "%s: incorrect qman-channel-id\n",
18a6c85fcc78dd Igal Liberman     2015-12-21  1862  				__func__);
18a6c85fcc78dd Igal Liberman     2015-12-21  1863  			err = -EINVAL;
72dfcb1946c5b8 Wang Qing         2021-12-07  1864  			goto return_of_put_device;
18a6c85fcc78dd Igal Liberman     2015-12-21  1865  		}
18a6c85fcc78dd Igal Liberman     2015-12-21  1866  		port->dts_params.qman_channel_id = qman_channel_id;
18a6c85fcc78dd Igal Liberman     2015-12-21  1867  	}
18a6c85fcc78dd Igal Liberman     2015-12-21  1868  
18a6c85fcc78dd Igal Liberman     2015-12-21  1869  	err = of_address_to_resource(port_node, 0, &res);
18a6c85fcc78dd Igal Liberman     2015-12-21  1870  	if (err < 0) {
18a6c85fcc78dd Igal Liberman     2015-12-21  1871  		dev_err(port->dev, "%s: of_address_to_resource() failed\n",
18a6c85fcc78dd Igal Liberman     2015-12-21  1872  			__func__);
18a6c85fcc78dd Igal Liberman     2015-12-21  1873  		err = -ENOMEM;
72dfcb1946c5b8 Wang Qing         2021-12-07  1874  		goto return_of_put_device;
18a6c85fcc78dd Igal Liberman     2015-12-21  1875  	}
18a6c85fcc78dd Igal Liberman     2015-12-21  1876  
18a6c85fcc78dd Igal Liberman     2015-12-21  1877  	port->dts_params.fman = fman;
18a6c85fcc78dd Igal Liberman     2015-12-21  1878  
18a6c85fcc78dd Igal Liberman     2015-12-21  1879  	dev_res = __devm_request_region(port->dev, &res, res.start,
18a6c85fcc78dd Igal Liberman     2015-12-21  1880  					resource_size(&res), "fman-port");
18a6c85fcc78dd Igal Liberman     2015-12-21  1881  	if (!dev_res) {
18a6c85fcc78dd Igal Liberman     2015-12-21  1882  		dev_err(port->dev, "%s: __devm_request_region() failed\n",
18a6c85fcc78dd Igal Liberman     2015-12-21  1883  			__func__);
18a6c85fcc78dd Igal Liberman     2015-12-21  1884  		err = -EINVAL;
72dfcb1946c5b8 Wang Qing         2021-12-07  1885  		goto return_of_put_device;
18a6c85fcc78dd Igal Liberman     2015-12-21  1886  	}
18a6c85fcc78dd Igal Liberman     2015-12-21  1887  
18a6c85fcc78dd Igal Liberman     2015-12-21  1888  	port->dts_params.base_addr = devm_ioremap(port->dev, res.start,
18a6c85fcc78dd Igal Liberman     2015-12-21  1889  						  resource_size(&res));
5df6f7fa47e030 Madalin Bucur     2016-03-22  1890  	if (!port->dts_params.base_addr)
18a6c85fcc78dd Igal Liberman     2015-12-21  1891  		dev_err(port->dev, "%s: devm_ioremap() failed\n", __func__);
18a6c85fcc78dd Igal Liberman     2015-12-21  1892  
72dfcb1946c5b8 Wang Qing         2021-12-07  1893  	of_node_put(port_node);
72dfcb1946c5b8 Wang Qing         2021-12-07  1894  
18a6c85fcc78dd Igal Liberman     2015-12-21  1895  	dev_set_drvdata(&of_dev->dev, port);
18a6c85fcc78dd Igal Liberman     2015-12-21  1896  
18a6c85fcc78dd Igal Liberman     2015-12-21  1897  	return 0;
18a6c85fcc78dd Igal Liberman     2015-12-21  1898  
72dfcb1946c5b8 Wang Qing         2021-12-07  1899  return_of_put_device:
72dfcb1946c5b8 Wang Qing         2021-12-07  1900  	put_device(&fm_pdev->dev);
72dfcb1946c5b8 Wang Qing         2021-12-07  1901  return_of_node_put:
18a6c85fcc78dd Igal Liberman     2015-12-21  1902  	of_node_put(port_node);
18a6c85fcc78dd Igal Liberman     2015-12-21 @1903  free_port:
18a6c85fcc78dd Igal Liberman     2015-12-21  1904  	kfree(port);
18a6c85fcc78dd Igal Liberman     2015-12-21  1905  	return err;
18a6c85fcc78dd Igal Liberman     2015-12-21  1906  }
18a6c85fcc78dd Igal Liberman     2015-12-21  1907  

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

  reply	other threads:[~2021-12-07 20:36 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-12-07 12:55 [PATCH] ethernet: fman: add missing put_device() call in fman_port_probe() Qing Wang
2021-12-07 20:36 ` kernel test robot [this message]
2021-12-07 20:36   ` kernel test robot
  -- strict thread matches above, loose matches on Subject: below --
2021-12-07 22:18 kernel test robot

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=202112080417.7Js3IaI3-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=davem@davemloft.net \
    --cc=kbuild-all@lists.01.org \
    --cc=kuba@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=llvm@lists.linux.dev \
    --cc=madalin.bucur@nxp.com \
    --cc=netdev@vger.kernel.org \
    --cc=wangqing@vivo.com \
    /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.