Re: [PATCH net-next] net: phy: use of_mdio_parse_addr

2017-06-09 Thread Michael Ellerman
Liviu Dudau  writes:

> On Fri, Jun 02, 2017 at 02:22:51PM -0400, David Miller wrote:
>> From: Jon Mason 
>> Date: Wed, 31 May 2017 15:43:30 -0400
>> 
>> > use of_mdio_parse_addr() in place of an OF read of reg and a bounds
>> > check (which is litterally the exact same thing that
>> > of_mdio_parse_addr() does)
>> > 
>> > Signed-off-by: Jon Mason 
>> 
>> Applied, thanks Jon.
>
> This makes linux-next fail the modules_install target as depmod detects 2 
> circular
> dependencies. Reverting this patch fixes the issue.
>
> depmod: ERROR: Cycle detected: libphy -> of_mdio -> fixed_phy -> libphy
> depmod: ERROR: Cycle detected: libphy -> of_mdio -> libphy
> depmod: ERROR: Found 3 modules in dependency cycles!
> make[1]: *** [/home/dliviu/devel/kernel/Makefile:1245: _modinst_post] Error 1
>
> This is on an ARCH=arm build, build I doubt it makes a difference. Let me 
> know if
> you need some .config values in order to reproduce.

Same happens on 32-bit powerpc.

cheers


Re: [PATCH net-next] net: phy: use of_mdio_parse_addr

2017-06-07 Thread Florian Fainelli
On 06/07/2017 01:53 PM, Jon Mason wrote:
> On Wed, Jun 7, 2017 at 12:18 PM, Liviu Dudau  wrote:
>> On Fri, Jun 02, 2017 at 02:22:51PM -0400, David Miller wrote:
>>> From: Jon Mason 
>>> Date: Wed, 31 May 2017 15:43:30 -0400
>>>
 use of_mdio_parse_addr() in place of an OF read of reg and a bounds
 check (which is litterally the exact same thing that
 of_mdio_parse_addr() does)

 Signed-off-by: Jon Mason 
>>>
>>> Applied, thanks Jon.
>>
>> This makes linux-next fail the modules_install target as depmod detects 2 
>> circular
>> dependencies. Reverting this patch fixes the issue.
>>
>> depmod: ERROR: Cycle detected: libphy -> of_mdio -> fixed_phy -> libphy
>> depmod: ERROR: Cycle detected: libphy -> of_mdio -> libphy
>> depmod: ERROR: Found 3 modules in dependency cycles!
>> make[1]: *** [/home/dliviu/devel/kernel/Makefile:1245: _modinst_post] Error 1
> 
> I did not test this as modules.  Sorry.
> 
> It would be ugly to duplicate the code in both place, and the code in
> question does not seem to really need to be in a C file.  Perhaps it
> can be moved to a header file as an inline function, which would solve
> this dependency.  Would this be acceptable?

You read my mind, was just going to suggest doing that.
-- 
Florian


Re: [PATCH net-next] net: phy: use of_mdio_parse_addr

2017-06-07 Thread Jon Mason
On Wed, Jun 7, 2017 at 12:18 PM, Liviu Dudau  wrote:
> On Fri, Jun 02, 2017 at 02:22:51PM -0400, David Miller wrote:
>> From: Jon Mason 
>> Date: Wed, 31 May 2017 15:43:30 -0400
>>
>> > use of_mdio_parse_addr() in place of an OF read of reg and a bounds
>> > check (which is litterally the exact same thing that
>> > of_mdio_parse_addr() does)
>> >
>> > Signed-off-by: Jon Mason 
>>
>> Applied, thanks Jon.
>
> This makes linux-next fail the modules_install target as depmod detects 2 
> circular
> dependencies. Reverting this patch fixes the issue.
>
> depmod: ERROR: Cycle detected: libphy -> of_mdio -> fixed_phy -> libphy
> depmod: ERROR: Cycle detected: libphy -> of_mdio -> libphy
> depmod: ERROR: Found 3 modules in dependency cycles!
> make[1]: *** [/home/dliviu/devel/kernel/Makefile:1245: _modinst_post] Error 1

I did not test this as modules.  Sorry.

It would be ugly to duplicate the code in both place, and the code in
question does not seem to really need to be in a C file.  Perhaps it
can be moved to a header file as an inline function, which would solve
this dependency.  Would this be acceptable?

Thanks,
Jon

>
> This is on an ARCH=arm build, build I doubt it makes a difference. Let me 
> know if
> you need some .config values in order to reproduce.
>
> Best regards,
> Liviu
>


Re: [PATCH net-next] net: phy: use of_mdio_parse_addr

2017-06-07 Thread Liviu Dudau
On Fri, Jun 02, 2017 at 02:22:51PM -0400, David Miller wrote:
> From: Jon Mason 
> Date: Wed, 31 May 2017 15:43:30 -0400
> 
> > use of_mdio_parse_addr() in place of an OF read of reg and a bounds
> > check (which is litterally the exact same thing that
> > of_mdio_parse_addr() does)
> > 
> > Signed-off-by: Jon Mason 
> 
> Applied, thanks Jon.

This makes linux-next fail the modules_install target as depmod detects 2 
circular
dependencies. Reverting this patch fixes the issue.

depmod: ERROR: Cycle detected: libphy -> of_mdio -> fixed_phy -> libphy
depmod: ERROR: Cycle detected: libphy -> of_mdio -> libphy
depmod: ERROR: Found 3 modules in dependency cycles!
make[1]: *** [/home/dliviu/devel/kernel/Makefile:1245: _modinst_post] Error 1

This is on an ARCH=arm build, build I doubt it makes a difference. Let me know 
if
you need some .config values in order to reproduce.

Best regards,
Liviu



Re: [PATCH net-next] net: phy: use of_mdio_parse_addr

2017-06-02 Thread David Miller
From: Jon Mason 
Date: Wed, 31 May 2017 15:43:30 -0400

> use of_mdio_parse_addr() in place of an OF read of reg and a bounds
> check (which is litterally the exact same thing that
> of_mdio_parse_addr() does)
> 
> Signed-off-by: Jon Mason 

Applied, thanks Jon.


Re: [PATCH net-next] net: phy: use of_mdio_parse_addr

2017-05-31 Thread Florian Fainelli
On 05/31/2017 12:43 PM, Jon Mason wrote:
> use of_mdio_parse_addr() in place of an OF read of reg and a bounds
> check (which is litterally the exact same thing that
> of_mdio_parse_addr() does)
> 
> Signed-off-by: Jon Mason 

Reviewed-by: Florian Fainelli 
-- 
Florian


Re: [PATCH net-next] net: phy: use of_mdio_parse_addr

2017-05-31 Thread Andrew Lunn
On Wed, May 31, 2017 at 03:43:30PM -0400, Jon Mason wrote:
> use of_mdio_parse_addr() in place of an OF read of reg and a bounds
> check (which is litterally the exact same thing that
> of_mdio_parse_addr() does)
> 
> Signed-off-by: Jon Mason 

Reviewed-by: Andrew Lunn 

Andrew


[PATCH net-next] net: phy: use of_mdio_parse_addr

2017-05-31 Thread Jon Mason
use of_mdio_parse_addr() in place of an OF read of reg and a bounds
check (which is litterally the exact same thing that
of_mdio_parse_addr() does)

Signed-off-by: Jon Mason 
---
 drivers/net/phy/mdio_bus.c | 15 ++-
 1 file changed, 2 insertions(+), 13 deletions(-)

diff --git a/drivers/net/phy/mdio_bus.c b/drivers/net/phy/mdio_bus.c
index 8e73f5f36e71..d4782e902e2e 100644
--- a/drivers/net/phy/mdio_bus.c
+++ b/drivers/net/phy/mdio_bus.c
@@ -263,21 +263,10 @@ static void of_mdiobus_link_mdiodev(struct mii_bus *bus,
 
for_each_available_child_of_node(bus->dev.of_node, child) {
int addr;
-   int ret;
 
-   ret = of_property_read_u32(child, "reg", );
-   if (ret < 0) {
-   dev_err(dev, "%s has invalid MDIO address\n",
-   child->full_name);
+   addr = of_mdio_parse_addr(dev, child);
+   if (addr < 0)
continue;
-   }
-
-   /* A MDIO device must have a reg property in the range [0-31] */
-   if (addr >= PHY_MAX_ADDR) {
-   dev_err(dev, "%s MDIO address %i is too large\n",
-   child->full_name, addr);
-   continue;
-   }
 
if (addr == mdiodev->addr) {
dev->of_node = child;
-- 
2.7.4