From b3f8a569e76b94e75f9a67390704f885028db1bf Mon Sep 17 00:00:00 2001 From: Rohit Raj <rohit.raj@nxp.com> Date: Mon, 16 Aug 2021 10:36:12 +0530 Subject: [PATCH] fsl_usdpaa: fix get link status crash Fix crash observed in VSP while trying to get link status when link is down from kernel. Signed-off-by: Rohit Raj <rohit.raj@nxp.com> DPDK-3239 --- drivers/staging/fsl_qbman/fsl_usdpaa.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/drivers/staging/fsl_qbman/fsl_usdpaa.c b/drivers/staging/fsl_qbman/fsl_usdpaa.c index 9a9e7befa9bde1..8ad5d74dca73ed 100644 --- a/drivers/staging/fsl_qbman/fsl_usdpaa.c +++ b/drivers/staging/fsl_qbman/fsl_usdpaa.c @@ -1849,9 +1849,13 @@ ioctl_usdpaa_get_link_status(struct usdpaa_ioctl_link_status_args *input) if (net_dev == NULL) return -ENODEV; - input->link_status = netif_carrier_ok(net_dev); - input->link_autoneg = net_dev->phydev->autoneg; - input->link_duplex = net_dev->phydev->duplex; + if (net_dev->phydev == NULL) { /* Interface is down from kernel */ + input->link_status = ETH_LINK_DOWN; + } else { + input->link_status = netif_carrier_ok(net_dev); + input->link_autoneg = net_dev->phydev->autoneg; + input->link_duplex = net_dev->phydev->duplex; + } if (input->link_status) input->link_speed = net_dev->phydev->speed; -- GitLab