Message ID | 20250221135315.5105-1-piotr.kwapulinski@intel.com (mailing list archive) |
---|---|
State | Superseded |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | [iwl-net,v2] ixgbe: fix media type detection for E610 device | expand |
Dear Piotr, Thank you for the improved version. Two minor nits should you resend. Am 21.02.25 um 14:53 schrieb Piotr Kwapulinski: > The commit 23c0e5a16bcc ("ixgbe: Add link management support for E610 > device") introduced incorrect media type detection for E610 device. It > reproduces when advertised speed is modified after driver reload. Clear > the previous outdated PHY type high value. > > Reproduction steps: > modprobe ixgbe > ethtool -s eth0 advertise 0x1000000000000 > rmmod ixgbe As you use modprobe over insmod, you could also used modprobe -r. > modprobe ixgbe > ethtool -s eth0 advertise 0x1000000000000 Is now an error printed? > Fixes: 23c0e5a16bcc ("ixgbe: Add link management support for E610 device") > Reviewed-by: Przemek Kitszel <przemyslaw.kitszel@intel.com> > Signed-off-by: Piotr Kwapulinski <piotr.kwapulinski@intel.com> > --- > v1 -> v2 > More commit message details and reproduction steps added > --- > drivers/net/ethernet/intel/ixgbe/ixgbe_e610.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_e610.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_e610.c > index 683c668..0dfefd2 100644 > --- a/drivers/net/ethernet/intel/ixgbe/ixgbe_e610.c > +++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_e610.c > @@ -1453,9 +1453,11 @@ enum ixgbe_media_type ixgbe_get_media_type_e610(struct ixgbe_hw *hw) > hw->link.link_info.phy_type_low = 0; > } else { > highest_bit = fls64(le64_to_cpu(pcaps.phy_type_low)); > - if (highest_bit) > + if (highest_bit) { > hw->link.link_info.phy_type_low = > BIT_ULL(highest_bit - 1); > + hw->link.link_info.phy_type_high = 0; > + } > } > } > Reviewed-by: Paul Menzel <pmenzel@molgen.mpg.de> Kind regards, Paul
diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_e610.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_e610.c index 683c668..0dfefd2 100644 --- a/drivers/net/ethernet/intel/ixgbe/ixgbe_e610.c +++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_e610.c @@ -1453,9 +1453,11 @@ enum ixgbe_media_type ixgbe_get_media_type_e610(struct ixgbe_hw *hw) hw->link.link_info.phy_type_low = 0; } else { highest_bit = fls64(le64_to_cpu(pcaps.phy_type_low)); - if (highest_bit) + if (highest_bit) { hw->link.link_info.phy_type_low = BIT_ULL(highest_bit - 1); + hw->link.link_info.phy_type_high = 0; + } } }