On 1/8/2018 5:45 PM, Stephen Hemminger wrote:
> Use the new comon code in ethdev to handle link status update.
> 
> Signed-off-by: Stephen Hemminger <step...@networkplumber.org>

<...>

>  static int
>  virtio_dev_link_update(struct rte_eth_dev *dev, __rte_unused int 
> wait_to_complete)
>  {
> -     struct rte_eth_link link, old;
> -     uint16_t status;
>       struct virtio_hw *hw = dev->data->dev_private;
> -     memset(&link, 0, sizeof(link));
> -     virtio_dev_atomic_read_link_status(dev, &link);
> -     old = link;
> -     link.link_duplex = ETH_LINK_FULL_DUPLEX;
> -     link.link_speed  = SPEED_10G;
> +     uint16_t status;
> +     struct rte_eth_link link = {
> +             .link_speed = ETH_SPEED_NUM_10G,
> +             .link_duplex = ETH_LINK_FULL_DUPLEX,
> +             .link_autoneg = ETH_LINK_SPEED_FIXED,

With a new cleanup commit [1] ETH_LINK_FIXED used for autoneg value (instead of
ETH_LINK_SPEED_FIXED). And since is ETH_LINK_FIXED is 0, setting autoneg to it
can be omitted.

[1]
93dd7b328a9b ("ethdev: fix link autonegotiation value")

This commit is in next-net.
Unlike Linux "net-next" sub-tree which is for next release development tree,
dpdk next-net is for current release network drivers which this patch seems fits
into.

I already rebased this patchset to next-net, I will share it to continue
discussion from that point.

> +     };
>  
>       if (hw->started == 0) {
>               link.link_status = ETH_LINK_DOWN;
> @@ -1957,9 +1916,8 @@ virtio_dev_link_update(struct rte_eth_dev *dev, 
> __rte_unused int wait_to_complet
>       } else {
>               link.link_status = ETH_LINK_UP;
>       }
> -     virtio_dev_atomic_write_link_status(dev, &link);
>  
> -     return (old.link_status == link.link_status) ? -1 : 0;
> +     return _rte_eth_linkstatus_set(dev, &link);
>  }
>  
>  static int
> 

Reply via email to