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] [day] [month] [year] [list]
Date:   Tue, 5 Feb 2019 03:52:11 +0000
From:   Pankaj Bansal <pankaj.bansal@....com>
To:     Andrew Lunn <andrew@...n.ch>,
        Florian Fainelli <f.fainelli@...il.com>
CC:     "netdev@...r.kernel.org" <netdev@...r.kernel.org>
Subject: RE: [PATCH v2 2/2] netdev/phy: add MDIO bus multiplexer driven by a
 regmap

Hi Andrew,

I am getting this compilation error when the mdio-mux-regmap.ko is built as standalone module.
This error doesn't come when the mdio-mux-regmap is built as part of linux kernel.

I don't understand the reason for it. Inline definitions of functions are only defined if CONFIG_MDIO_BUS_MUX_REGMAP
Is NOT defined. 

BUT it is defined as " CONFIG_MDIO_BUS_MUX_REGMAP = m"

Can you please help me to solve this?

Regards,
Pankaj Bansal

> -----Original Message-----
> From: kbuild test robot [mailto:lkp@...el.com]
> Sent: Monday, 4 February, 2019 08:22 PM
> 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; 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://emea01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.
> com%2F0day-ci%2Flinux%2Fcommits%2FPankaj-Bansal%2Fadd-MDIO-bus-
> multiplexer-driven-by-a-regmap-device%2F20190204-
> 213429&amp;data=02%7C01%7Cpankaj.bansal%40nxp.com%7Caabb2bdecd8a4
> 2c19f8108d68ab053d6%7C686ea1d3bc2b4c6fa92cd99c5c301635%7C0%7C0%7
> C636848890628820621&amp;sdata=WLP4yuLXqfoNLfrPSIWhNkfg24YdR6Ny8jb
> cUgvcrDQ%3D&amp;reserved=0
> config: sh-allmodconfig (attached as .config)
> compiler: sh4-linux-gnu-gcc (Debian 8.2.0-11) 8.2.0
> reproduce:
>         wget
> https://emea01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fraw.git
> hubusercontent.com%2Fintel%2Flkp-
> tests%2Fmaster%2Fsbin%2Fmake.cross&amp;data=02%7C01%7Cpankaj.bansal
> %40nxp.com%7Caabb2bdecd8a42c19f8108d68ab053d6%7C686ea1d3bc2b4c6f
> a92cd99c5c301635%7C0%7C0%7C636848890628820621&amp;sdata=pGqb5xq
> RsWH6fXd8NWLUKX86qQ0ZO8OOy8nj9rckqV8%3D&amp;reserved=0 -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://emea01.safelinks.protection.outlook.com/?url=https%3A%2F%2Flists.01
> .org%2Fpipermail%2Fkbuild-
> all&amp;data=02%7C01%7Cpankaj.bansal%40nxp.com%7Caabb2bdecd8a42c19
> f8108d68ab053d6%7C686ea1d3bc2b4c6fa92cd99c5c301635%7C0%7C0%7C636
> 848890628820621&amp;sdata=P7RrlnHYStMpoDpwIDMmlRiDTCemyEE3bxuUrq
> d0uxY%3D&amp;reserved=0                   Intel Corporation

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ