* [PATCH] net/ixgbe: fix EEPROM read failure on copper media
@ 2026-07-01 9:07 Mingjin Ye
2026-07-01 10:46 ` Bruce Richardson
0 siblings, 1 reply; 3+ messages in thread
From: Mingjin Ye @ 2026-07-01 9:07 UTC (permalink / raw)
To: dev
Cc: Mingjin Ye, stable, Anatoly Burakov, Vladimir Medvedkin,
Remy Horton, Ferruh Yigit, Zijie Pan
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@dpdk.org
Signed-off-by: Mingjin Ye <mingjinx.ye@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;
+ }
+
for (i = info->offset; i < info->offset + info->length; i++) {
if (i < RTE_ETH_MODULE_SFF_8079_LEN)
status = hw->phy.ops.read_i2c_eeprom(hw, i, &databyte);
--
2.47.1
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH] net/ixgbe: fix EEPROM read failure on copper media
2026-07-01 9:07 [PATCH] net/ixgbe: fix EEPROM read failure on copper media Mingjin Ye
@ 2026-07-01 10:46 ` Bruce Richardson
2026-07-01 11:07 ` Bruce Richardson
0 siblings, 1 reply; 3+ messages in thread
From: Bruce Richardson @ 2026-07-01 10:46 UTC (permalink / raw)
To: Mingjin Ye; +Cc: dev, stable, Anatoly Burakov, Vladimir Medvedkin
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@dpdk.org
>
> Signed-off-by: Mingjin Ye <mingjinx.ye@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@intel.com>
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH] net/ixgbe: fix EEPROM read failure on copper media
2026-07-01 10:46 ` Bruce Richardson
@ 2026-07-01 11:07 ` Bruce Richardson
0 siblings, 0 replies; 3+ messages in thread
From: Bruce Richardson @ 2026-07-01 11:07 UTC (permalink / raw)
To: Mingjin Ye; +Cc: dev, stable, Anatoly Burakov, Vladimir Medvedkin
On Wed, Jul 01, 2026 at 11:46:19AM +0100, Bruce Richardson wrote:
> 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@dpdk.org
> >
> > Signed-off-by: Mingjin Ye <mingjinx.ye@intel.com>
> > ---
> > drivers/net/intel/ixgbe/ixgbe_ethdev.c | 12 ++++++++++++
> > 1 file changed, 12 insertions(+)
> >
> Acked-by: Bruce Richardson <bruce.richardson@intel.com>
>
Patch applied to dpdk-next-net-intel.
Thanks,
/Bruce
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2026-07-01 11:07 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-07-01 9:07 [PATCH] net/ixgbe: fix EEPROM read failure on copper media Mingjin Ye
2026-07-01 10:46 ` Bruce Richardson
2026-07-01 11:07 ` Bruce Richardson
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox