From: Linus Walleij Date: Wed, 11 Jul 2018 19:32:43 +0000 (+0200) Subject: net: gemini: Allow multiple ports to instantiate X-Git-Tag: v4.18.10~31 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=466ec0c2ba2d4f2029f1a01d0fe2f140a9e08406;p=users%2Fdwmw2%2Flinux.git net: gemini: Allow multiple ports to instantiate [ Upstream commit 60cc7767b901dd1e3f70755c3d2505556ba487c2 ] 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 Signed-off-by: David S. Miller Signed-off-by: Sasha Levin Signed-off-by: Greg Kroah-Hartman --- diff --git a/drivers/net/ethernet/cortina/gemini.c b/drivers/net/ethernet/cortina/gemini.c index 6d7404f66f84a..c9a061e707c4e 100644 --- a/drivers/net/ethernet/cortina/gemini.c +++ b/drivers/net/ethernet/cortina/gemini.c @@ -1753,7 +1753,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; }