[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