From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jon Hunter Subject: Re: [PATCH net-next 3/3] net: stmmac: Convert to phylink and remove phylib logic Date: Tue, 18 Jun 2019 11:18:53 +0100 Message-ID: References: <6226d6a0de5929ed07d64b20472c52a86e71383d.1560266175.git.joabreu@synopsys.com> <78EB27739596EE489E55E81C33FEC33A0B9C8D6E@DE02WEMBXB.internal.synopsys.com> <26cfaeff-a310-3b79-5b57-fd9c93bd8929@nvidia.com> <78EB27739596EE489E55E81C33FEC33A0B9C8DD9@DE02WEMBXB.internal.synopsys.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <78EB27739596EE489E55E81C33FEC33A0B9C8DD9@DE02WEMBXB.internal.synopsys.com> Content-Language: en-US Sender: linux-kernel-owner@vger.kernel.org To: Jose Abreu , "linux-kernel@vger.kernel.org" , "netdev@vger.kernel.org" Cc: Joao Pinto , "David S . Miller" , Giuseppe Cavallaro , Alexandre Torgue , Russell King , Andrew Lunn , Florian Fainelli , Heiner Kallweit , linux-tegra List-Id: linux-tegra@vger.kernel.org On 18/06/2019 10:46, Jose Abreu wrote: > From: Jon Hunter > >> I am not certain but I don't believe so. We are using a static IP address >> and mounting the root file-system via NFS when we see this ... > > Can you please add a call to napi_synchronize() before every > napi_disable() calls, like this: > > if (queue < rx_queues_cnt) { > napi_synchronize(&ch->rx_napi); > napi_disable(&ch->rx_napi); > } > > if (queue < tx_queues_cnt) { > napi_synchronize(&ch->tx_napi); > napi_disable(&ch->tx_napi); > } > > [ I can send you a patch if you prefer ] Yes I can try this and for completeness you mean ... diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c index 4ca46289a742..d4a12cb64d8e 100644 --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c @@ -146,10 +146,15 @@ static void stmmac_disable_all_queues(struct stmmac_priv *priv) for (queue = 0; queue < maxq; queue++) { struct stmmac_channel *ch = &priv->channel[queue]; - if (queue < rx_queues_cnt) + if (queue < rx_queues_cnt) { + napi_synchronize(&ch->rx_napi); napi_disable(&ch->rx_napi); - if (queue < tx_queues_cnt) + } + + if (queue < tx_queues_cnt) { + napi_synchronize(&ch->tx_napi); napi_disable(&ch->tx_napi); + } } } Cheers Jon -- nvpublic