[PATCH 0/3] ixgbe: fix SFP hotplug detection

Jeff Daly jeffd at silicom-usa.com
Thu May 19 21:25:12 CEST 2022


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

Jeff Daly (3):
  ixgbe: make link update thread periodic
  ixgbe: move periodic link service work into separate function
  ixgbe: make hotplug detection aware of changed SFPs

 drivers/net/ixgbe/base/ixgbe_common.c |   4 +-
 drivers/net/ixgbe/ixgbe_ethdev.c      | 471 ++++++++++++++++++++------
 drivers/net/ixgbe/ixgbe_ethdev.h      |   9 +
 3 files changed, 374 insertions(+), 110 deletions(-)

-- 
2.25.1



More information about the stable mailing list