[net-next,3/5,v3] net: gemini: Allow multiple ports to instantiate

Message ID 20180711193245.21980-3-linus.walleij@linaro.org
State Accepted
Delegated to: David Miller
Headers show
Series
  • [net-next,1/5,v3] net: gemini: Look up L3 maxlen from table
Related show

Commit Message

Linus Walleij July 11, 2018, 7:32 p.m.
The code was not tested with two ports actually in use at
the same time. (I blame this on lack of actual hardware using
that feature.) Now after locating a system using both ports,
add necessary fix to make both ports come up.

Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
---
ChangeLog v2->v3:
- No changes, just resending with the rest.
ChangeLog v1->v2:
- No changes, just resending with the rest.
---
 drivers/net/ethernet/cortina/gemini.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

Comments

David Miller July 13, 2018, 12:39 a.m. | #1
From: Linus Walleij <linus.walleij@linaro.org>
Date: Wed, 11 Jul 2018 21:32:43 +0200

> The code was not tested with two ports actually in use at
> the same time. (I blame this on lack of actual hardware using
> that feature.) Now after locating a system using both ports,
> add necessary fix to make both ports come up.
> 
> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>

Applied.

Patch

diff --git a/drivers/net/ethernet/cortina/gemini.c b/drivers/net/ethernet/cortina/gemini.c
index f0ab6426daca..2457a1239d69 100644
--- a/drivers/net/ethernet/cortina/gemini.c
+++ b/drivers/net/ethernet/cortina/gemini.c
@@ -1789,7 +1789,10 @@  static int gmac_open(struct net_device *netdev)
 	phy_start(netdev->phydev);
 
 	err = geth_resize_freeq(port);
-	if (err) {
+	/* It's fine if it's just busy, the other port has set up
+	 * the freeq in that case.
+	 */
+	if (err && (err != -EBUSY)) {
 		netdev_err(netdev, "could not resize freeq\n");
 		goto err_stop_phy;
 	}