[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <266a5ecd-30f8-4450-ab9a-e4f239ad640d@amd.com>
Date: Fri, 9 Feb 2024 09:28:29 +0530
From: "Aithal, Srikanth" <sraithal@....com>
To: Heiner Kallweit <hkallweit1@...il.com>,
Stephen Rothwell <sfr@...b.auug.org.au>, andrew@...n.ch,
Jakub Kicinski <kuba@...nel.org>
Cc: Linux Next Mailing List <linux-next@...r.kernel.org>,
Linux Regressions <regressions@...ts.linux.dev>,
open list <linux-kernel@...r.kernel.org>
Subject: Re: linux-next20240208: tg3 driver nw interfaces not getting
configured
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@...alhost ~]# 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@...alhost ~]# ip link set eno8303 up
>> [root@...alhost ~]# ip link set eno8403 up
>> [root@...alhost ~]# 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@...il.com>
>>>>>> 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@...il.com>
>>>>>> Reviewed-by: Andrew Lunn <andrew@...n.ch>
>>>>>> Link: https://lore.kernel.org/r/0652b910-6bcc-421f-8769-38f7dae5037e@gmail.com
>>>>>> Signed-off-by: Jakub Kicinski <kuba@...nel.org>
>>>>>>
>>>>>>
>>>>>> The same works fine on 6.8.0-rc3-next-20240207.
>>>>>>
>>>>>> Thanks,
>>>>>> Srikanth Aithal
>>>>>> sraithal@....com
>>>>> 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@....com>
Powered by blists - more mailing lists