Re: linux-next20240208: tg3 driver nw interfaces not getting configured

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 2/9/2024 3:48 AM, Heiner Kallweit wrote:
On 08.02.2024 16:28, Aithal, Srikanth wrote:
On 2/8/2024 7:32 PM, Heiner Kallweit wrote:
On 08.02.2024 12:05, Aithal, Srikanth wrote:
On 2/8/2024 4:16 PM, Heiner Kallweit wrote:
On 08.02.2024 09:30, Aithal, Srikanth wrote:
Hi,

On 6.8.0-rc3-next-20240208, the network interfaces are not getting configured.

Thanks for the report. Could you please elaborate on what "not getting
configured" means in detail?
- Any error in any log?
- Any other error message?
- Interface doesn't come up or which specific configuration are you missing?

I am not seeing any errors in the dmesg,

[    4.019383] tg3 0000:c1:00.0 eth0: Tigon3 [partno(BCM95720) rev 5720000] (PCI Express) MAC address d0:8e:79:bb:95:90
[    4.019391] tg3 0000:c1:00.0 eth0: attached PHY is 5720C (10/100/1000Base-T Ethernet) (WireSpeed[1], EEE[1])
[    4.019394] tg3 0000:c1:00.0 eth0: RXcsums[1] LinkChgREG[0] MIirq[0] ASF[1] TSOcap[1]
[    4.019397] tg3 0000:c1:00.0 eth0: dma_rwctrl[00000001] dma_mask[64-bit]
[    4.041082] tg3 0000:c1:00.1 eth1: Tigon3 [partno(BCM95720) rev 5720000] (PCI Express) MAC address d0:8e:79:bb:95:91
[    4.041087] tg3 0000:c1:00.1 eth1: attached PHY is 5720C (10/100/1000Base-T Ethernet) (WireSpeed[1], EEE[1])
[    4.041090] tg3 0000:c1:00.1 eth1: RXcsums[1] LinkChgREG[0] MIirq[0] ASF[1] TSOcap[1]
[    4.041092] tg3 0000:c1:00.1 eth1: dma_rwctrl[00000001] dma_mask[64-bit]
[    4.077483] tg3 0000:c1:00.1 eno8403: renamed from eth1
[    4.124657] tg3 0000:c1:00.0 eno8303: renamed from eth0

nmcli says interfaces are disconnected:

[root@localhost ~]# nmcli
eno8303: disconnected
          "Broadcom and subsidiaries NetXtreme BCM5720"
          ethernet (tg3), D0:8E:79:BB:95:90, hw, mtu 1500

eno8403: disconnected
          "Broadcom and subsidiaries NetXtreme BCM5720"
          ethernet (tg3), D0:8E:79:BB:95:91, hw, mtu 1500

I am attaching host dmesg.


Thanks. dmesg lists no error. Please send output from the following commands.

ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
     link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eno8303: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN mode DEFAULT group default qlen 1000
     link/ether d0:8e:79:bb:95:90 brd ff:ff:ff:ff:ff:ff
     altname enp193s0f0
3: eno8403: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN mode DEFAULT group default qlen 1000
     link/ether d0:8e:79:bb:95:91 brd ff:ff:ff:ff:ff:ff
     altname enp193s0f1

ethtool <if>
Settings for eno8303:
         Supported ports: [ TP ]
         Supported link modes:   10baseT/Half 10baseT/Full
                                 100baseT/Half 100baseT/Full
                                 1000baseT/Half 1000baseT/Full
         Supported pause frame use: No
         Supports auto-negotiation: Yes
         Supported FEC modes: Not reported
         Advertised link modes:  10baseT/Half 10baseT/Full
                                 100baseT/Half 100baseT/Full
                                 1000baseT/Half 1000baseT/Full
         Advertised pause frame use: No
         Advertised auto-negotiation: Yes
         Advertised FEC modes: Not reported
         Speed: Unknown!
         Duplex: Unknown! (255)
         Auto-negotiation: on
         Port: Twisted Pair
         PHYAD: 1
         Transceiver: internal
         MDI-X: Unknown
         Supports Wake-on: g
         Wake-on: d
         Current message level: 0x000000ff (255)
                                drv probe link timer ifdown ifup rx_err tx_err
         Link detected: no

Settings for eno8403:
         Supported ports: [ TP ]
         Supported link modes:   10baseT/Half 10baseT/Full
                                 100baseT/Half 100baseT/Full
                                 1000baseT/Half 1000baseT/Full
         Supported pause frame use: No
         Supports auto-negotiation: Yes
         Supported FEC modes: Not reported
         Advertised link modes:  10baseT/Half 10baseT/Full
                                 100baseT/Half 100baseT/Full
                                 1000baseT/Half 1000baseT/Full
         Advertised pause frame use: No
         Advertised auto-negotiation: Yes
         Advertised FEC modes: Not reported
         Speed: Unknown!
         Duplex: Unknown! (255)
         Auto-negotiation: on
         Port: Twisted Pair
         PHYAD: 2
         Transceiver: internal
         MDI-X: Unknown
         Supports Wake-on: g
         Wake-on: d
         Current message level: 0x000000ff (255)
                                drv probe link timer ifdown ifup rx_err tx_err
         Link detected: no

ethtool --show-eee <if>
EEE settings for eno8403:
         EEE status: enabled - inactive
         Tx LPI: 2047 (us)
         Supported EEE link modes:  100baseT/Full
                                    1000baseT/Full
         Advertised EEE link modes:  100baseT/Full
                                     1000baseT/Full
         Link partner advertised EEE link modes:  Not reported

EEE settings for eno8303:
         EEE status: enabled - inactive
         Tx LPI: 2047 (us)
         Supported EEE link modes:  100baseT/Full
                                    1000baseT/Full
         Advertised EEE link modes:  100baseT/Full
                                     1000baseT/Full
         Link partner advertised EEE link modes:  Not reported


If the interfaces aren't up, please try to bring them up manually and see what happens.
ip link set <if> up
Nothing happens.
[root@localhost ~]# ip link set eno8303 up
[root@localhost ~]# ip link set eno8403 up
[root@localhost ~]# ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
     link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eno8303: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN mode DEFAULT group default qlen 1000
     link/ether d0:8e:79:bb:95:90 brd ff:ff:ff:ff:ff:ff
     altname enp193s0f0
3: eno8403: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN mode DEFAULT group default qlen 1000
     link/ether d0:8e:79:bb:95:91 brd ff:ff:ff:ff:ff:ff
     altname enp193s0f1



I have 'NetXtreme BCM5720 Gigabit Ethernet PCIe'
          configuration: autonegotiation=on broadcast=yes driver=tg3

If I revert below commit I am able to get back the interfaces mentioned.

commit 9bc791341bc9a5c22b94889aa37993bb69faa317
Author: Heiner Kallweit <hkallweit1@xxxxxxxxx>
Date:   Sat Feb 3 22:12:50 2024 +0100

       tg3: convert EEE handling to use linkmode bitmaps

       Convert EEE handling to use linkmode bitmaps. This prepares for
       removing the legacy bitmaps from struct ethtool_keee.
       No functional change intended.

       Note: The change to mii_eee_cap1_mod_linkmode_t(tp->eee.advertised, val)
       in tg3_phy_autoneg_cfg() isn't completely obvious, but it doesn't change
       the current functionality.

       Signed-off-by: Heiner Kallweit <hkallweit1@xxxxxxxxx>
       Reviewed-by: Andrew Lunn <andrew@xxxxxxx>
       Link: https://lore.kernel.org/r/0652b910-6bcc-421f-8769-38f7dae5037e@xxxxxxxxx
       Signed-off-by: Jakub Kicinski <kuba@xxxxxxxxxx>


The same works fine on 6.8.0-rc3-next-20240207.

Thanks,
Srikanth Aithal
sraithal@xxxxxxx
Heiner



Could you please test whether the following fixes the issue for you?

The uninitialized struct ethtool_keee causes the bug because
mii_eee_cap1_mod_linkmode_t() leaves unknown bits as-is.

---
  drivers/net/ethernet/broadcom/tg3.c | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/ethernet/broadcom/tg3.c b/drivers/net/ethernet/broadcom/tg3.c
index 50f674031..7d0a2f5f3 100644
--- a/drivers/net/ethernet/broadcom/tg3.c
+++ b/drivers/net/ethernet/broadcom/tg3.c
@@ -4616,7 +4616,7 @@ static int tg3_init_5401phy_dsp(struct tg3 *tp)
static bool tg3_phy_eee_config_ok(struct tg3 *tp)
  {
-	struct ethtool_keee eee;
+	struct ethtool_keee eee = {};
if (!(tp->phy_flags & TG3_PHYFLG_EEE_CAP))
  		return true;

This fix on top of next20240208 resolves the issue. Thank you.

Tested-by: Srikanth Aithal <sraithal@xxxxxxx>




[Index of Archives]     [Linux Kernel]     [Linux USB Development]     [Yosemite News]     [Linux SCSI]

  Powered by Linux