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>5.4-rM2-2.2.x-imx-squashed
parent
a8fd628437
commit
e41f1a1fa2
|
@ -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_device *mc_dev)
|
|||
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_mc_device *mc_dev)
|
|||
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);
|
||||
|
|
Loading…
Reference in New Issue