diff options
Diffstat (limited to 'target/linux/layerscape/patches-5.4/701-net-0353-staging-fsl-dpaa2-mac-do-not-stop-MAC-when-the-net_d.patch')
-rw-r--r-- | target/linux/layerscape/patches-5.4/701-net-0353-staging-fsl-dpaa2-mac-do-not-stop-MAC-when-the-net_d.patch | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/target/linux/layerscape/patches-5.4/701-net-0353-staging-fsl-dpaa2-mac-do-not-stop-MAC-when-the-net_d.patch b/target/linux/layerscape/patches-5.4/701-net-0353-staging-fsl-dpaa2-mac-do-not-stop-MAC-when-the-net_d.patch new file mode 100644 index 0000000000..80bb697edf --- /dev/null +++ b/target/linux/layerscape/patches-5.4/701-net-0353-staging-fsl-dpaa2-mac-do-not-stop-MAC-when-the-net_d.patch @@ -0,0 +1,65 @@ +From aae18d4ce3055e459855cc8661cf8f2a5e2cbe73 Mon Sep 17 00:00:00 2001 +From: Ioana Ciornei <ioana.ciornei@nxp.com> +Date: Fri, 13 Dec 2019 13:24:01 +0200 +Subject: [PATCH] staging: fsl-dpaa2/mac: do not stop MAC when the net_dev is + not up + +In case the net_device is not up, there is no need to call +dpmac_mac_stop(). Guard the call by checking the IFF_UP flag. +This patch will also solve the following warning generated by removing a +dpmac that is not up. + +[ 40.942937] called from state READY +[ 40.946442] WARNING: CPU: 0 PID: 755 at drivers/net/phy/phy.c:838 +phy_stop+0x6c/0x78 +[ 40.954171] Modules linked in: +[ 40.957214] CPU: 0 PID: 755 Comm: bash Tainted: G W +5.4.0-03629-gfd7102c32b2c-dirty #911 +[ 40.966592] Hardware name: NXP Layerscape LX2160ARDB (DT) +[ 40.971978] pstate: 40000005 (nZcv daif -PAN -UAO) +[ 40.976756] pc : phy_stop+0x6c/0x78 +[ 40.980232] lr : phy_stop+0x6c/0x78 +(..) +[ 41.066487] Call trace: +[ 41.068922] phy_stop+0x6c/0x78 +[ 41.072052] dpaa2_mac_stop.part.4+0x34/0x5c +[ 41.076309] dpaa2_mac_remove+0x9c/0xa8 + +Also, remove the IFF_UP flag from the mac netdev since the PHY is not +anymore started at probe time but is rather started/stopped on ifconfig +up/down. + +Signed-off-by: Ioana Ciornei <ioana.ciornei@nxp.com> +--- + drivers/staging/fsl-dpaa2/mac/mac.c | 8 +++----- + 1 file changed, 3 insertions(+), 5 deletions(-) + +--- a/drivers/staging/fsl-dpaa2/mac/mac.c ++++ b/drivers/staging/fsl-dpaa2/mac/mac.c +@@ -1,5 +1,5 @@ + /* Copyright 2015 Freescale Semiconductor Inc. +- * Copyright 2018 NXP ++ * Copyright 2018-2019 NXP + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: +@@ -664,9 +664,6 @@ static int dpaa2_mac_probe(struct fsl_mc + netdev->netdev_ops = &dpaa2_mac_ndo_ops; + netdev->ethtool_ops = &dpaa2_mac_ethtool_ops; + +- /* phy starts up enabled so netdev should be up too */ +- netdev->flags |= IFF_UP; +- + err = register_netdev(priv->netdev); + if (err < 0) { + dev_err(dev, "register_netdev error %d\n", err); +@@ -775,7 +772,8 @@ static int dpaa2_mac_remove(struct fsl_m + struct dpaa2_mac_priv *priv = dev_get_drvdata(dev); + struct net_device *netdev = priv->netdev; + +- dpaa2_mac_stop(netdev); ++ if (netdev->flags & IFF_UP) ++ dpaa2_mac_stop(netdev); + + if (phy_is_pseudo_fixed_link(netdev->phydev)) + fixed_phy_unregister(netdev->phydev); |