Message ID | 20210915180848.32166-1-davthompson@nvidia.com |
---|---|
State | New |
Headers | show |
Series | [net,v2] mlxbf_gige: clear valid_polarity upon open | expand |
Hello: This patch was applied to netdev/net.git (refs/heads/master): On Wed, 15 Sep 2021 14:08:48 -0400 you wrote: > The network interface managed by the mlxbf_gige driver can > get into a problem state where traffic does not flow. > In this state, the interface will be up and enabled, but > will stop processing received packets. This problem state > will happen if three specific conditions occur: > 1) driver has received more than (N * RxRingSize) packets but > less than (N+1 * RxRingSize) packets, where N is an odd number > Note: the command "ethtool -g <interface>" will display the > current receive ring size, which currently defaults to 128 > 2) the driver's interface was disabled via "ifconfig oob_net0 down" > during the window described in #1. > 3) the driver's interface is re-enabled via "ifconfig oob_net0 up" > > [...] Here is the summary with links: - [net,v2] mlxbf_gige: clear valid_polarity upon open https://git.kernel.org/netdev/net/c/ee8a9600b539 You are awesome, thank you! -- Deet-doot-dot, I am a bot. https://korg.docs.kernel.org/patchwork/pwbot.html
diff --git a/drivers/net/ethernet/mellanox/mlxbf_gige/mlxbf_gige_main.c b/drivers/net/ethernet/mellanox/mlxbf_gige/mlxbf_gige_main.c index 3e85b17f5857..6704f5c1aa32 100644 --- a/drivers/net/ethernet/mellanox/mlxbf_gige/mlxbf_gige_main.c +++ b/drivers/net/ethernet/mellanox/mlxbf_gige/mlxbf_gige_main.c @@ -142,6 +142,13 @@ static int mlxbf_gige_open(struct net_device *netdev) err = mlxbf_gige_clean_port(priv); if (err) goto free_irqs; + + /* Clear driver's valid_polarity to match hardware, + * since the above call to clean_port() resets the + * receive polarity used by hardware. + */ + priv->valid_polarity = 0; + err = mlxbf_gige_rx_init(priv); if (err) goto free_irqs;