[PATCH v3 3/3] net/ixgbe: Fix SFP detection and linking on hotplug

Wang, Haiyue haiyue.wang at intel.com
Fri Feb 25 02:56:19 CET 2022


> -----Original Message-----
> From: Jeff Daly <jeffd at silicom-usa.com>
> Sent: Thursday, February 24, 2022 23:24
> To: dev at dpdk.org
> Cc: stable at dpdk.org; Stephen Douthit <stephend at silicom-usa.com>; Wang, Haiyue <haiyue.wang at intel.com>
> Subject: [PATCH v3 3/3] net/ixgbe: Fix SFP detection and linking on hotplug
> 
> 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>
> Signed-off-by: Jeff Daly <jeffd at silicom-usa.com>
> ---
>  drivers/net/ixgbe/ixgbe_ethdev.c | 687 +++++++++++++++++++++----------
>  drivers/net/ixgbe/ixgbe_ethdev.h |  14 +-
>  2 files changed, 486 insertions(+), 215 deletions(-)
> 
> diff --git a/drivers/net/ixgbe/ixgbe_ethdev.c b/drivers/net/ixgbe/ixgbe_ethdev.c
> index e8f07cb405..2150b5ed35 100644
> --- a/drivers/net/ixgbe/ixgbe_ethdev.c
> +++ b/drivers/net/ixgbe/ixgbe_ethdev.c
> @@ -69,11 +69,11 @@
> 
>  #define IXGBE_LINK_DOWN_CHECK_TIMEOUT 4000 /* ms */
>  #define IXGBE_LINK_UP_CHECK_TIMEOUT   1000 /* ms */
> -#define IXGBE_VMDQ_NUM_UC_MAC         4096 /* Maximum nb. of UC MAC addr. */
> +#define IXGBE_VMDQ_NUM_UC_MAC	      4096 /* Maximum nb. of UC MAC addr. */
> 

Please drop this kind of indentation change, too many.
Then we will be lost in your fix.

>  /**
>   * l2 tunnel configuration.
>   */
> --
> 2.25.1



More information about the stable mailing list