summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThanneeru Srinivasulu <tsrinivasulu@caviumnetworks.com>2015-07-29 16:49:46 +0300
committerDavid S. Miller <davem@davemloft.net>2015-07-29 23:52:32 -0700
commit60f83c898776c363ef8ebb66f14cbc748c1df1e8 (patch)
treeee27afe8ce9af746388306f50e060c8018fe0e21
parent4adf4351145e65dd98407299496ef00d82430b48 (diff)
downloadlinux-60f83c898776c363ef8ebb66f14cbc748c1df1e8.tar.bz2
net: thunderx: Fix for crash while BGX teardown
Cortina phy does not have kernel driver and we don't attach device with phy layer for intefaces like XFI, XLAUI etc, Hence check for interface type before calling disconnect. Signed-off-by: Thanneeru Srinivasulu <tsrinivasulu@caviumnetworks.com> Signed-off-by: Aleksey Makarov <aleksey.makarov@caviumnetworks.com> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--drivers/net/ethernet/cavium/thunder/thunder_bgx.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/net/ethernet/cavium/thunder/thunder_bgx.c b/drivers/net/ethernet/cavium/thunder/thunder_bgx.c
index 633ec05dfe05..b961a89dc626 100644
--- a/drivers/net/ethernet/cavium/thunder/thunder_bgx.c
+++ b/drivers/net/ethernet/cavium/thunder/thunder_bgx.c
@@ -673,7 +673,10 @@ static void bgx_lmac_disable(struct bgx *bgx, u8 lmacid)
bgx_reg_write(bgx, lmacid, BGX_CMRX_CFG, cmrx_cfg);
bgx_flush_dmac_addrs(bgx, lmacid);
- if (lmac->phydev)
+ if ((bgx->lmac_type != BGX_MODE_XFI) &&
+ (bgx->lmac_type != BGX_MODE_XLAUI) &&
+ (bgx->lmac_type != BGX_MODE_40G_KR) &&
+ (bgx->lmac_type != BGX_MODE_10G_KR) && lmac->phydev)
phy_disconnect(lmac->phydev);
lmac->phydev = NULL;