]> git.droids-corp.org - dpdk.git/blobdiff - drivers/net/cxgbe/cxgbe_ethdev.c
net/cxgbe: avoid polling link status before device start
[dpdk.git] / drivers / net / cxgbe / cxgbe_ethdev.c
index 5d74f8ba3b80c74f952fc9972e99e6165c6eb120..5df8d746c9727e6f3801f08a41daf612cb674c4a 100644 (file)
@@ -206,6 +206,9 @@ int cxgbe_dev_link_update(struct rte_eth_dev *eth_dev,
        u8 old_link = pi->link_cfg.link_ok;
 
        for (i = 0; i < CXGBE_LINK_STATUS_POLL_CNT; i++) {
+               if (!s->fw_evtq.desc)
+                       break;
+
                cxgbe_poll(&s->fw_evtq, NULL, budget, &work_done);
 
                /* Exit if link status changed or always forced up */
@@ -239,6 +242,9 @@ int cxgbe_dev_set_link_up(struct rte_eth_dev *dev)
        struct sge *s = &adapter->sge;
        int ret;
 
+       if (!s->fw_evtq.desc)
+               return -ENOMEM;
+
        /* Flush all link events */
        cxgbe_poll(&s->fw_evtq, NULL, budget, &work_done);
 
@@ -265,6 +271,9 @@ int cxgbe_dev_set_link_down(struct rte_eth_dev *dev)
        struct sge *s = &adapter->sge;
        int ret;
 
+       if (!s->fw_evtq.desc)
+               return -ENOMEM;
+
        /* Flush all link events */
        cxgbe_poll(&s->fw_evtq, NULL, budget, &work_done);