You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
46 lines
1.5 KiB
Diff
46 lines
1.5 KiB
Diff
From 978b13baa79b68f3471cc2c5110a2e45aab9ca61 Mon Sep 17 00:00:00 2001
|
|
From: Ioana Ciornei <ioana.ciornei@nxp.com>
|
|
Date: Tue, 10 Dec 2019 17:26:06 +0200
|
|
Subject: [PATCH] staging: fsl-dpaa2/mac: do not call dpmac_set_link_state()
|
|
when nothing changed
|
|
|
|
In case nothing changed in the link configuration do not call
|
|
dpmac_set_link_state().
|
|
This is needed in case of the following sequence of commands.
|
|
|
|
$ ip link set dev eth1 up; ip link set dev eth2 down
|
|
|
|
Phylib brings the link down when the aneg is started on the phy which
|
|
translates in a link down from phy in MC and confuses the MC linkman.
|
|
|
|
Signed-off-by: Ioana Ciornei <ioana.ciornei@nxp.com>
|
|
---
|
|
drivers/staging/fsl-dpaa2/mac/mac.c | 16 ++++++++++------
|
|
1 file changed, 10 insertions(+), 6 deletions(-)
|
|
|
|
--- a/drivers/staging/fsl-dpaa2/mac/mac.c
|
|
+++ b/drivers/staging/fsl-dpaa2/mac/mac.c
|
|
@@ -158,12 +158,16 @@ static void dpaa2_mac_link_changed(struc
|
|
netif_carrier_off(netdev);
|
|
}
|
|
|
|
- if (priv->old_state.up != state.up ||
|
|
- priv->old_state.rate != state.rate ||
|
|
- priv->old_state.options != state.options) {
|
|
- priv->old_state = state;
|
|
- phy_print_status(phydev);
|
|
- }
|
|
+ /* Call the dpmac_set_link_state() only if there is a change in the
|
|
+ * link configuration
|
|
+ */
|
|
+ if (priv->old_state.up == state.up &&
|
|
+ priv->old_state.rate == state.rate &&
|
|
+ priv->old_state.options == state.options)
|
|
+ return;
|
|
+
|
|
+ priv->old_state = state;
|
|
+ phy_print_status(phydev);
|
|
|
|
if (cmp_dpmac_ver(priv, DPMAC_LINK_AUTONEG_VER_MAJOR,
|
|
DPMAC_LINK_AUTONEG_VER_MINOR) < 0) {
|