[PATCH] net/ixgbe: fix EEPROM read failure on copper media
Bruce Richardson
bruce.richardson at intel.com
Wed Jul 1 12:46:19 CEST 2026
On Wed, Jul 01, 2026 at 09:07:03AM +0000, Mingjin Ye wrote:
> The ixgbe_get_module_info() and ixgbe_get_module_eeprom() functions
> attempt to read SFF EEPROM data for all port types. However, copper
> media ports do not have SFF EEPROMs, causing invalid I2C operations
> and generating error logs.
>
> This patch adds a media type check at the beginning of both functions.
> If the media type is ixgbe_media_type_copper, return -ENOTSUP to
> safely skip the EEPROM read.
>
> Fixes: b74d0cd43e37 ("net/ixgbe: add module EEPROM callbacks for ixgbe")
> Cc: stable at dpdk.org
>
> Signed-off-by: Mingjin Ye <mingjinx.ye at intel.com>
> ---
> drivers/net/intel/ixgbe/ixgbe_ethdev.c | 12 ++++++++++++
> 1 file changed, 12 insertions(+)
>
> diff --git a/drivers/net/intel/ixgbe/ixgbe_ethdev.c b/drivers/net/intel/ixgbe/ixgbe_ethdev.c
> index f9de95e4fc..44c29f0642 100644
> --- a/drivers/net/intel/ixgbe/ixgbe_ethdev.c
> +++ b/drivers/net/intel/ixgbe/ixgbe_ethdev.c
> @@ -7424,6 +7424,12 @@ ixgbe_get_module_info(struct rte_eth_dev *dev,
> if (rte_eal_process_type() != RTE_PROC_PRIMARY)
> return -E_RTE_SECONDARY;
>
> + if (hw->phy.media_type == ixgbe_media_type_copper) {
> + PMD_DRV_LOG(DEBUG, "Port %u is Base-T (copper), no SFF module info.",
> + dev->data->port_id);
> + return -ENOTSUP;
> + }
> +
> /* Check whether we support SFF-8472 or not */
> status = hw->phy.ops.read_i2c_eeprom(hw,
> IXGBE_SFF_SFF_8472_COMP,
> @@ -7477,6 +7483,12 @@ ixgbe_get_module_eeprom(struct rte_eth_dev *dev,
> if (rte_eal_process_type() != RTE_PROC_PRIMARY)
> return -E_RTE_SECONDARY;
>
> + if (hw->phy.media_type == ixgbe_media_type_copper) {
> + PMD_DRV_LOG(DEBUG, "Port %u is Base-T (copper), cannot read module EEPROM.",
> + dev->data->port_id);
> + return -ENOTSUP;
> + }
> +
Looks reasonable.
Acked-by: Bruce Richardson <bruce.richardson at intel.com>
More information about the stable
mailing list