[PATCH v2 5/7] net/ixgbe: Fix SFP detection and linking on hotplug

Ferruh Yigit ferruh.yigit at intel.com
Mon Feb 7 17:07:15 CET 2022


On 12/6/2021 10:19 PM, Stephen Douthit wrote:
> Currently the ixgbe driver does not ID any SFP except for the first one
> plugged in. This can lead to no-link, or incorrect speed conditions.
> 
> For example:
> 
> * If link is initially established with a 1G SFP, and later a 1G/10G
> multispeed part is later installed, then the MAC link setup functions are
> never called to change from 1000BASE-X to 10GBASE-R mode, and the link
> stays running at the slower rate.
> 
> * If link is initially established with a 1G SFP, and later a 10G only
> module is later installed, no link is established, since we are still
> trasnsmitting in 1000BASE-X mode to a 10GBASE-R only partner.
> 
> Refactor the SFP ID/setup, and link setup code, to more closely match the
> flow of the mainline kernel driver which does not have these issues.  In
> that driver a service task runs periodically to handle these operations
> based on bit flags that have been set (usually via interrupt or userspace
> request), and then get cleared once the requested subtask has been
> completed.
> 
> Fixes: af75078fece ("first public release")
> Cc: stable at dpdk.org
> 
> Signed-off-by: Stephen Douthit <stephend at silicom-usa.com>
> ---
>   drivers/net/ixgbe/base/ixgbe_type.h |   2 +
>   drivers/net/ixgbe/ixgbe_ethdev.c    | 349 +++++++++++++++++-----------
>   drivers/net/ixgbe/ixgbe_ethdev.h    |  18 +-
>   3 files changed, 224 insertions(+), 145 deletions(-)
> 
> diff --git a/drivers/net/ixgbe/base/ixgbe_type.h b/drivers/net/ixgbe/base/ixgbe_type.h
> index b7eec45635..c23257aa4c 100644
> --- a/drivers/net/ixgbe/base/ixgbe_type.h
> +++ b/drivers/net/ixgbe/base/ixgbe_type.h
> @@ -45,6 +45,8 @@
>   
>   #include "ixgbe_osdep.h"
>   
> +#define BIT(a) (1UL << (a))
> +

There is already RTE_BIT64/RTE_BIT32 macros in DPDK, they can be used in PMD
instead of defining its own.


More information about the stable mailing list