From: Nelson Escobar Date: Tue, 9 Aug 2016 21:42:04 +0000 (-0700) Subject: net/enic: move link checking init to probe time X-Git-Tag: spdx-start~5838 X-Git-Url: http://git.droids-corp.org/?a=commitdiff_plain;h=c98779abbc108f44f95e0b8d1cd86fe9e9952a83;p=dpdk.git net/enic: move link checking init to probe time The enic DMAs link status information to the host and this requires a little setup. This setup was being done as a result of calling rte_eth_dev_start(). But applications expect to be able to check link status before calling rte_eth_dev_start(). This patch moves the link status setup to enic_init() which is called at device probe time so that link status can be checked anytime. Fixes: fefed3d1e62c ("enic: new driver") Signed-off-by: Nelson Escobar Reviewed-by: John Daley --- diff --git a/drivers/net/enic/enic_main.c b/drivers/net/enic/enic_main.c index b4ca371049..eb32ac1ace 100644 --- a/drivers/net/enic/enic_main.c +++ b/drivers/net/enic/enic_main.c @@ -430,7 +430,6 @@ int enic_enable(struct enic *enic) eth_dev->data->dev_link.link_speed = vnic_dev_port_speed(enic->vdev); eth_dev->data->dev_link.link_duplex = ETH_LINK_FULL_DUPLEX; - vnic_dev_notify_set(enic->vdev, -1); /* No Intr for notify */ if (enic_clsf_init(enic)) dev_warning(enic, "Init of hash table for clsf failed."\ @@ -820,7 +819,6 @@ int enic_disable(struct enic *enic) } vnic_dev_set_reset_flag(enic->vdev, 1); - vnic_dev_notify_unset(enic->vdev); for (i = 0; i < enic->wq_count; i++) vnic_wq_clean(&enic->wq[i], enic_free_wq_buf); @@ -1022,6 +1020,9 @@ static void enic_dev_deinit(struct enic *enic) { struct rte_eth_dev *eth_dev = enic->rte_dev; + /* stop link status checking */ + vnic_dev_notify_unset(enic->vdev); + rte_free(eth_dev->data->mac_addrs); } @@ -1137,6 +1138,9 @@ static int enic_dev_init(struct enic *enic) vnic_dev_set_reset_flag(enic->vdev, 0); + /* set up link status checking */ + vnic_dev_notify_set(enic->vdev, -1); /* No Intr for notify */ + return 0; }