net/qede: fix link change event notification
authorShahed Shaikh <shahed.shaikh@cavium.com>
Thu, 7 Jun 2018 16:30:52 +0000 (09:30 -0700)
committerFerruh Yigit <ferruh.yigit@intel.com>
Thu, 14 Jun 2018 17:27:50 +0000 (19:27 +0200)
As per existing behavior, when firmware sends a link change
notification, PMD only updates the link structure but does
not notify applications about it.
This results in application sending packets even when link
status is down.

Fix this issue by issuing RTE_ETH_EVENT_INTR_LSC.

Fixes: ec94dbc57362 ("qede: add base driver")
Cc: stable@dpdk.org
Signed-off-by: Shahed Shaikh <shahed.shaikh@cavium.com>
drivers/net/qede/qede_main.c

index c3407fe..de5a7ca 100644 (file)
@@ -634,8 +634,11 @@ void qed_link_update(struct ecore_hwfn *hwfn)
 {
        struct ecore_dev *edev = hwfn->p_dev;
        struct qede_dev *qdev = (struct qede_dev *)edev;
+       struct rte_eth_dev *dev = (struct rte_eth_dev *)qdev->ethdev;
 
-       qede_link_update((struct rte_eth_dev *)qdev->ethdev, 0);
+       if (!qede_link_update(dev, 0))
+               _rte_eth_dev_callback_process(dev,
+                                             RTE_ETH_EVENT_INTR_LSC, NULL);
 }
 
 static int qed_drain(struct ecore_dev *edev)