lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <201902042228.ePAd4m5Y%fengguang.wu@intel.com>
Date:   Mon, 4 Feb 2019 22:51:32 +0800
From:   kbuild test robot <lkp@...el.com>
To:     Pankaj Bansal <pankaj.bansal@....com>
Cc:     kbuild-all@...org, Andrew Lunn <andrew@...n.ch>,
        Florian Fainelli <f.fainelli@...il.com>,
        "netdev@...r.kernel.org" <netdev@...r.kernel.org>,
        Pankaj Bansal <pankaj.bansal@....com>
Subject: Re: [PATCH v2 2/2] netdev/phy: add MDIO bus multiplexer driven by a
 regmap

Hi Pankaj,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on net/master]
[also build test ERROR on v5.0-rc4]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

url:    https://github.com/0day-ci/linux/commits/Pankaj-Bansal/add-MDIO-bus-multiplexer-driven-by-a-regmap-device/20190204-213429
config: sh-allmodconfig (attached as .config)
compiler: sh4-linux-gnu-gcc (Debian 8.2.0-11) 8.2.0
reproduce:
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # save the attached .config to linux build tree
        GCC_VERSION=8.2.0 make.cross ARCH=sh 

All errors (new ones prefixed by >>):

>> drivers/net/phy/mdio-mux-regmap.c:72:5: error: redefinition of 'mdio_mux_regmap_init'
    int mdio_mux_regmap_init(struct device *dev,
        ^~~~~~~~~~~~~~~~~~~~
   In file included from drivers/net/phy/mdio-mux-regmap.c:18:
   include/linux/mdio-mux.h:53:19: note: previous definition of 'mdio_mux_regmap_init' was here
    static inline int mdio_mux_regmap_init(struct device *dev,
                      ^~~~~~~~~~~~~~~~~~~~
>> drivers/net/phy/mdio-mux-regmap.c:158:5: error: redefinition of 'mdio_mux_regmap_uninit'
    int mdio_mux_regmap_uninit(void *data)
        ^~~~~~~~~~~~~~~~~~~~~~
   In file included from drivers/net/phy/mdio-mux-regmap.c:18:
   include/linux/mdio-mux.h:60:19: note: previous definition of 'mdio_mux_regmap_uninit' was here
    static inline int mdio_mux_regmap_uninit(void *data)
                      ^~~~~~~~~~~~~~~~~~~~~~

vim +/mdio_mux_regmap_init +72 drivers/net/phy/mdio-mux-regmap.c

    62	
    63	/**
    64	 * mdio_mux_regmap_init - control MDIO bus muxing using regmap constructs.
    65	 * @dev: device with which regmap construct is associated.
    66	 * @mux_node: mdio bus mux node that contains parent mdio bus phandle.
    67	 *	      This node also contains sub nodes, where each subnode denotes
    68	 *	      a child mdio bus. All the child mdio buses are muxed, i.e. at a
    69	 *	      time only one of the child mdio buses can be used.
    70	 * @data: to store the address of data allocated by this function
    71	 */
  > 72	int mdio_mux_regmap_init(struct device *dev,
    73				 struct device_node *mux_node,
    74				 void **data)
    75	{
    76		struct device_node *child;
    77		struct mdio_mux_regmap_state *s;
    78		int ret;
    79		u32 val;
    80	
    81		dev_dbg(dev, "probing node %pOF\n", mux_node);
    82	
    83		s = devm_kzalloc(dev, sizeof(*s), GFP_KERNEL);
    84		if (!s)
    85			return -ENOMEM;
    86	
    87		s->regmap = dev_get_regmap(dev, NULL);
    88		if (IS_ERR(s->regmap)) {
    89			dev_err(dev, "Failed to get parent regmap\n");
    90			return PTR_ERR(s->regmap);
    91		}
    92	
    93		ret = of_property_read_u32(mux_node, "reg", &s->mux_reg);
    94		if (ret) {
    95			dev_err(dev, "missing or invalid reg property\n");
    96			return -ENODEV;
    97		}
    98	
    99		/* Test Register read write */
   100		ret = regmap_read(s->regmap, s->mux_reg, &val);
   101		if (ret) {
   102			dev_err(dev, "error while reading reg\n");
   103			return ret;
   104		}
   105	
   106		ret = regmap_write(s->regmap, s->mux_reg, val);
   107		if (ret) {
   108			dev_err(dev, "error while writing reg\n");
   109			return ret;
   110		}
   111	
   112		ret = of_property_read_u32(mux_node, "mux-mask", &s->mask);
   113		if (ret) {
   114			dev_err(dev, "missing or invalid mux-mask property\n");
   115			return -ENODEV;
   116		}
   117	
   118		/* Verify that the 'reg' property of each child MDIO bus does not
   119		 * set any bits outside of the 'mask'.
   120		 */
   121		for_each_available_child_of_node(mux_node, child) {
   122			ret = of_property_read_u32(child, "reg", &val);
   123			if (ret) {
   124				dev_err(dev, "%pOF is missing a 'reg' property\n",
   125					child);
   126				of_node_put(child);
   127				return -ENODEV;
   128			}
   129			if (val & ~s->mask) {
   130				dev_err(dev,
   131					"%pOF has a 'reg' value with unmasked bits\n",
   132					child);
   133				of_node_put(child);
   134				return -ENODEV;
   135			}
   136		}
   137	
   138		ret = mdio_mux_init(dev, mux_node, mdio_mux_regmap_switch_fn,
   139				    &s->mux_handle, s, NULL);
   140		if (ret) {
   141			if (ret != -EPROBE_DEFER)
   142				dev_err(dev, "failed to register mdio-mux bus %pOF\n",
   143					mux_node);
   144			return ret;
   145		}
   146	
   147		*data = s;
   148	
   149		return 0;
   150	}
   151	EXPORT_SYMBOL_GPL(mdio_mux_regmap_init);
   152	
   153	/**
   154	 * mdio_mux_regmap_uninit - relinquish the control of MDIO bus muxing using
   155	 *			    regmap constructs.
   156	 * @data: address of data allocated by mdio_mux_regmap_init
   157	 */
 > 158	int mdio_mux_regmap_uninit(void *data)
   159	{
   160		struct mdio_mux_regmap_state *s = data;
   161	
   162		mdio_mux_uninit(s->mux_handle);
   163	
   164		return 0;
   165	}
   166	EXPORT_SYMBOL_GPL(mdio_mux_regmap_uninit);
   167	

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

Download attachment ".config.gz" of type "application/gzip" (50803 bytes)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ