[PATCH -next 1/2] net: tc35815: Fix build error due to missed API change

Subsystems: networking drivers, the rest

STALE3902d

7 messages, 2 authors, 2016-01-10 · open the first message on its own page

[PATCH -next 1/2] net: tc35815: Fix build error due to missed API change

From: Guenter Roeck <linux@roeck-us.net>
Date: 2016-01-09 21:21:38

Commit 7f854420fbfe ("phy: Add API for {un}registering an mdio device to
a bus") introduces an API to access mii_bus structures, but missed to
update the tc35815 driver. This results in the following error message.

drivers/net/ethernet/toshiba/tc35815.c: In function 'tc_mii_probe':
drivers/net/ethernet/toshiba/tc35815.c:617:18: error:
	'struct mii_bus' has no member named 'phy_map'
drivers/net/ethernet/toshiba/tc35815.c:623:24: error:
	'struct mii_bus' has no member named 'phy_map'

Fixes: 7f854420fbfe ("phy: Add API for {un}registering an mdio device to a bus")
Cc: Andrew Lunn <andrew@lunn.ch>
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
---
 drivers/net/ethernet/toshiba/tc35815.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/drivers/net/ethernet/toshiba/tc35815.c b/drivers/net/ethernet/toshiba/tc35815.c
index fed5e3dfbc8f..5b5e7dcf9a99 100644
--- a/drivers/net/ethernet/toshiba/tc35815.c
+++ b/drivers/net/ethernet/toshiba/tc35815.c
@@ -614,13 +614,16 @@ static int tc_mii_probe(struct net_device *dev)
 
 	/* find the first phy */
 	for (phy_addr = 0; phy_addr < PHY_MAX_ADDR; phy_addr++) {
-		if (lp->mii_bus->phy_map[phy_addr]) {
+		struct phy_device *tmp_phy;
+
+		tmp_phy = mdiobus_get_phy(lp->mii_bus, phy_addr);
+		if (tmp_phy) {
 			if (phydev) {
 				printk(KERN_ERR "%s: multiple PHYs found\n",
 				       dev->name);
 				return -EINVAL;
 			}
-			phydev = lp->mii_bus->phy_map[phy_addr];
+			phydev = tmp_phy;
 			break;
 		}
 	}
-- 
2.1.4

[PATCH -next 2/2] net: tc35815: Drop unused variable

From: Guenter Roeck <linux@roeck-us.net>
Date: 2016-01-09 21:21:52

Commit e7f4dc3536a4 ("mdio: Move allocation of interrupts into core")
removes some code from tc_mii_init(), but does not remove a now unused
variable. This results in the following build warning.

drivers/net/ethernet/toshiba/tc35815.c: In function 'tc_mii_init':
drivers/net/ethernet/toshiba/tc35815.c:670:6: warning: unused variable 'i'

Fixes: e7f4dc3536a4 ("mdio: Move allocation of interrupts into core")
Cc: Andrew Lunn <andrew@lunn.ch>
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
---
 drivers/net/ethernet/toshiba/tc35815.c | 1 -
 1 file changed, 1 deletion(-)
diff --git a/drivers/net/ethernet/toshiba/tc35815.c b/drivers/net/ethernet/toshiba/tc35815.c
index 5b5e7dcf9a99..c6c5ef979b84 100644
--- a/drivers/net/ethernet/toshiba/tc35815.c
+++ b/drivers/net/ethernet/toshiba/tc35815.c
@@ -670,7 +670,6 @@ static int tc_mii_init(struct net_device *dev)
 {
 	struct tc35815_local *lp = netdev_priv(dev);
 	int err;
-	int i;
 
 	lp->mii_bus = mdiobus_alloc();
 	if (lp->mii_bus == NULL) {
-- 
2.1.4

Re: [PATCH -next 1/2] net: tc35815: Fix build error due to missed API change

From: Andrew Lunn <andrew@lunn.ch>
Date: 2016-01-09 21:36:18

On Sat, Jan 09, 2016 at 01:21:33PM -0800, Guenter Roeck wrote:
quoted hunk
Commit 7f854420fbfe ("phy: Add API for {un}registering an mdio device to
a bus") introduces an API to access mii_bus structures, but missed to
update the tc35815 driver. This results in the following error message.

drivers/net/ethernet/toshiba/tc35815.c: In function 'tc_mii_probe':
drivers/net/ethernet/toshiba/tc35815.c:617:18: error:
	'struct mii_bus' has no member named 'phy_map'
drivers/net/ethernet/toshiba/tc35815.c:623:24: error:
	'struct mii_bus' has no member named 'phy_map'

Fixes: 7f854420fbfe ("phy: Add API for {un}registering an mdio device to a bus")
Cc: Andrew Lunn <andrew@lunn.ch>
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
---
 drivers/net/ethernet/toshiba/tc35815.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/drivers/net/ethernet/toshiba/tc35815.c b/drivers/net/ethernet/toshiba/tc35815.c
index fed5e3dfbc8f..5b5e7dcf9a99 100644
--- a/drivers/net/ethernet/toshiba/tc35815.c
+++ b/drivers/net/ethernet/toshiba/tc35815.c
@@ -614,13 +614,16 @@ static int tc_mii_probe(struct net_device *dev)
 
 	/* find the first phy */
 	for (phy_addr = 0; phy_addr < PHY_MAX_ADDR; phy_addr++) {
-		if (lp->mii_bus->phy_map[phy_addr]) {
+		struct phy_device *tmp_phy;
+
+		tmp_phy = mdiobus_get_phy(lp->mii_bus, phy_addr);
+		if (tmp_phy) {
 			if (phydev) {
 				printk(KERN_ERR "%s: multiple PHYs found\n",
 				       dev->name);
 				return -EINVAL;
 			}
-			phydev = lp->mii_bus->phy_map[phy_addr];
+			phydev = tmp_phy;
 			break;
 		}
 	}
Hi Guenter

You fix looks right, but i'm wondering about the code which is being
fixed.

How can phydev ever evaluate to true, given the break statement?  Can
this code every detect multiple PHYs? I think not.

Either the break needs to be removed, or we just replace the whole lot
with phy_find_first().

     Andrew

Re: [PATCH -next 2/2] net: tc35815: Drop unused variable

From: Andrew Lunn <andrew@lunn.ch>
Date: 2016-01-09 21:37:15

On Sat, Jan 09, 2016 at 01:21:34PM -0800, Guenter Roeck wrote:
Commit e7f4dc3536a4 ("mdio: Move allocation of interrupts into core")
removes some code from tc_mii_init(), but does not remove a now unused
variable. This results in the following build warning.

drivers/net/ethernet/toshiba/tc35815.c: In function 'tc_mii_init':
drivers/net/ethernet/toshiba/tc35815.c:670:6: warning: unused variable 'i'

Fixes: e7f4dc3536a4 ("mdio: Move allocation of interrupts into core")
Cc: Andrew Lunn <andrew@lunn.ch>
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
Acked-by: Andrew Lunn <andrew@lunn.ch>

	  Thanks
		Andrew
quoted hunk
---
 drivers/net/ethernet/toshiba/tc35815.c | 1 -
 1 file changed, 1 deletion(-)
diff --git a/drivers/net/ethernet/toshiba/tc35815.c b/drivers/net/ethernet/toshiba/tc35815.c
index 5b5e7dcf9a99..c6c5ef979b84 100644
--- a/drivers/net/ethernet/toshiba/tc35815.c
+++ b/drivers/net/ethernet/toshiba/tc35815.c
@@ -670,7 +670,6 @@ static int tc_mii_init(struct net_device *dev)
 {
 	struct tc35815_local *lp = netdev_priv(dev);
 	int err;
-	int i;
 
 	lp->mii_bus = mdiobus_alloc();
 	if (lp->mii_bus == NULL) {
-- 
2.1.4

Re: [PATCH -next 1/2] net: tc35815: Fix build error due to missed API change

From: Guenter Roeck <linux@roeck-us.net>
Date: 2016-01-09 21:50:38

On 01/09/2016 01:36 PM, Andrew Lunn wrote:
On Sat, Jan 09, 2016 at 01:21:33PM -0800, Guenter Roeck wrote:
quoted
Commit 7f854420fbfe ("phy: Add API for {un}registering an mdio device to
a bus") introduces an API to access mii_bus structures, but missed to
update the tc35815 driver. This results in the following error message.

drivers/net/ethernet/toshiba/tc35815.c: In function 'tc_mii_probe':
drivers/net/ethernet/toshiba/tc35815.c:617:18: error:
	'struct mii_bus' has no member named 'phy_map'
drivers/net/ethernet/toshiba/tc35815.c:623:24: error:
	'struct mii_bus' has no member named 'phy_map'

Fixes: 7f854420fbfe ("phy: Add API for {un}registering an mdio device to a bus")
Cc: Andrew Lunn <andrew@lunn.ch>
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
---
  drivers/net/ethernet/toshiba/tc35815.c | 7 +++++--
  1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/drivers/net/ethernet/toshiba/tc35815.c b/drivers/net/ethernet/toshiba/tc35815.c
index fed5e3dfbc8f..5b5e7dcf9a99 100644
--- a/drivers/net/ethernet/toshiba/tc35815.c
+++ b/drivers/net/ethernet/toshiba/tc35815.c
@@ -614,13 +614,16 @@ static int tc_mii_probe(struct net_device *dev)

  	/* find the first phy */
  	for (phy_addr = 0; phy_addr < PHY_MAX_ADDR; phy_addr++) {
-		if (lp->mii_bus->phy_map[phy_addr]) {
+		struct phy_device *tmp_phy;
+
+		tmp_phy = mdiobus_get_phy(lp->mii_bus, phy_addr);
+		if (tmp_phy) {
  			if (phydev) {
  				printk(KERN_ERR "%s: multiple PHYs found\n",
  				       dev->name);
  				return -EINVAL;
  			}
-			phydev = lp->mii_bus->phy_map[phy_addr];
+			phydev = tmp_phy;
  			break;
  		}
  	}
Hi Guenter

You fix looks right, but i'm wondering about the code which is being
fixed.

How can phydev ever evaluate to true, given the break statement?  Can
this code every detect multiple PHYs? I think not.

Either the break needs to be removed, or we just replace the whole lot
with phy_find_first().
Hi Andrew,

you are right, the current code is pretty pointless.

I would suggest to use phy_find_first(). Even though that changes the intent
of the code, it doesn't change its current semantics. Plus, apparently
the intent wasn't important enough to actually test it. Add to it the
resulting simplification, and I think we have a clear winner.

Should I submit a separate patch, or replace my patch with v2 ?
And which way to go ?

Thoughts ?

Guenter

Re: [PATCH -next 1/2] net: tc35815: Fix build error due to missed API change

From: Andrew Lunn <andrew@lunn.ch>
Date: 2016-01-09 22:09:27

quoted
Hi Guenter

You fix looks right, but i'm wondering about the code which is being
fixed.

How can phydev ever evaluate to true, given the break statement?  Can
this code every detect multiple PHYs? I think not.

Either the break needs to be removed, or we just replace the whole lot
with phy_find_first().
Hi Andrew,

you are right, the current code is pretty pointless.

I would suggest to use phy_find_first().
Me too.
Should I submit a separate patch, or replace my patch with v2 ?
I say a v2 which uses phy_find_first() and include in the changelog
why the current code is pointless and so the change to
phy_find_first().

	Thanks
		Andrew

Re: [PATCH -next 1/2] net: tc35815: Fix build error due to missed API change

From: Guenter Roeck <linux@roeck-us.net>
Date: 2016-01-10 02:48:56

On 01/09/2016 02:09 PM, Andrew Lunn wrote:
quoted
quoted
Hi Guenter

You fix looks right, but i'm wondering about the code which is being
fixed.

How can phydev ever evaluate to true, given the break statement?  Can
this code every detect multiple PHYs? I think not.

Either the break needs to be removed, or we just replace the whole lot
with phy_find_first().
Hi Andrew,

you are right, the current code is pretty pointless.

I would suggest to use phy_find_first().
Me too.
quoted
Should I submit a separate patch, or replace my patch with v2 ?
I say a v2 which uses phy_find_first() and include in the changelog
why the current code is pointless and so the change to
phy_find_first().
Ok, I'll do that.

Guenter
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help