On Fri, 22 May 2015 18:54:20 +0530 Rahul Lakkireddy <rahul.lakkireddy at chelsio.com> wrote:
> +static int cxgbe_dev_link_update(struct rte_eth_dev *eth_dev, > + __rte_unused int wait_to_complete) > +{ > + struct port_info *pi = (struct port_info *)(eth_dev->data->dev_private); > + struct adapter *adapter = pi->adapter; > + struct sge *s = &adapter->sge; > + unsigned int work_done, budget = 4; > + int ret; > + > + cxgbe_poll(&s->fw_evtq, NULL, budget, &work_done); > + ret = pi->link_cfg.link_ok; > + eth_dev->data->dev_link.link_status = pi->link_cfg.link_ok; > + eth_dev->data->dev_link.link_duplex = ETH_LINK_FULL_DUPLEX; > + eth_dev->data->dev_link.link_speed = pi->link_cfg.speed; > + return ret; It is well not documented but link update is supposed to return 0 on link status changed and -1 if not changed.