Message ID | 20210414151007.563698-1-thierry.reding@gmail.com (mailing list archive) |
---|---|
State | Accepted |
Commit | 00423969d806d7169d16fa6314c570a472ca26c9 |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | Revert "net: stmmac: re-init rx buffers when mac resume back" | expand |
Context | Check | Description |
---|---|---|
netdev/tree_selection | success | Guessing tree name failed - patch did not apply |
Hello: This patch was applied to netdev/net.git (refs/heads/master): On Wed, 14 Apr 2021 17:10:07 +0200 you wrote: > From: Thierry Reding <treding@nvidia.com> > > This reverts commit 9c63faaa931e443e7abbbee9de0169f1d4710546, which > introduces a suspend/resume regression on Jetson TX2 boards that can be > reproduced every time. Given that the issue that this was supposed to > fix only occurs very sporadically the safest course of action is to > revert before v5.12 and then we can have another go at fixing the more > rare issue in the next release (and perhaps backport it if necessary). > > [...] Here is the summary with links: - Revert "net: stmmac: re-init rx buffers when mac resume back" https://git.kernel.org/netdev/net/c/00423969d806 You are awesome, thank you! -- Deet-doot-dot, I am a bot. https://korg.docs.kernel.org/patchwork/pwbot.html
Hi David, Jakub, On 14/04/2021 22:10, patchwork-bot+netdevbpf@kernel.org wrote: > Hello: > > This patch was applied to netdev/net.git (refs/heads/master): > > On Wed, 14 Apr 2021 17:10:07 +0200 you wrote: >> From: Thierry Reding <treding@nvidia.com> >> >> This reverts commit 9c63faaa931e443e7abbbee9de0169f1d4710546, which >> introduces a suspend/resume regression on Jetson TX2 boards that can be >> reproduced every time. Given that the issue that this was supposed to >> fix only occurs very sporadically the safest course of action is to >> revert before v5.12 and then we can have another go at fixing the more >> rare issue in the next release (and perhaps backport it if necessary). >> >> [...] > > Here is the summary with links: > - Revert "net: stmmac: re-init rx buffers when mac resume back" > https://git.kernel.org/netdev/net/c/00423969d806 This revert is needed for v5.12. I was just checking to see if this would be merged this week? Thanks! Jon
On 22/04/2021 13:48, Jon Hunter wrote: > Hi David, Jakub, > > On 14/04/2021 22:10, patchwork-bot+netdevbpf@kernel.org wrote: >> Hello: >> >> This patch was applied to netdev/net.git (refs/heads/master): >> >> On Wed, 14 Apr 2021 17:10:07 +0200 you wrote: >>> From: Thierry Reding <treding@nvidia.com> >>> >>> This reverts commit 9c63faaa931e443e7abbbee9de0169f1d4710546, which >>> introduces a suspend/resume regression on Jetson TX2 boards that can be >>> reproduced every time. Given that the issue that this was supposed to >>> fix only occurs very sporadically the safest course of action is to >>> revert before v5.12 and then we can have another go at fixing the more >>> rare issue in the next release (and perhaps backport it if necessary). >>> >>> [...] >> >> Here is the summary with links: >> - Revert "net: stmmac: re-init rx buffers when mac resume back" >> https://git.kernel.org/netdev/net/c/00423969d806 > > > This revert is needed for v5.12. I was just checking to see if this > would be merged this week? I see this is already merged! Sorry for the noise. It is a different fix that we are still missing for v5.12 which is not related to networking. Jon
diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c index 208cae344ffa..4749bd0af160 100644 --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c @@ -1379,88 +1379,6 @@ static void stmmac_free_tx_buffer(struct stmmac_priv *priv, u32 queue, int i) } } -/** - * stmmac_reinit_rx_buffers - reinit the RX descriptor buffer. - * @priv: driver private structure - * Description: this function is called to re-allocate a receive buffer, perform - * the DMA mapping and init the descriptor. - */ -static void stmmac_reinit_rx_buffers(struct stmmac_priv *priv) -{ - u32 rx_count = priv->plat->rx_queues_to_use; - u32 queue; - int i; - - for (queue = 0; queue < rx_count; queue++) { - struct stmmac_rx_queue *rx_q = &priv->rx_queue[queue]; - - for (i = 0; i < priv->dma_rx_size; i++) { - struct stmmac_rx_buffer *buf = &rx_q->buf_pool[i]; - - if (buf->page) { - page_pool_recycle_direct(rx_q->page_pool, buf->page); - buf->page = NULL; - } - - if (priv->sph && buf->sec_page) { - page_pool_recycle_direct(rx_q->page_pool, buf->sec_page); - buf->sec_page = NULL; - } - } - } - - for (queue = 0; queue < rx_count; queue++) { - struct stmmac_rx_queue *rx_q = &priv->rx_queue[queue]; - - for (i = 0; i < priv->dma_rx_size; i++) { - struct stmmac_rx_buffer *buf = &rx_q->buf_pool[i]; - struct dma_desc *p; - - if (priv->extend_desc) - p = &((rx_q->dma_erx + i)->basic); - else - p = rx_q->dma_rx + i; - - if (!buf->page) { - buf->page = page_pool_dev_alloc_pages(rx_q->page_pool); - if (!buf->page) - goto err_reinit_rx_buffers; - - buf->addr = page_pool_get_dma_addr(buf->page); - } - - if (priv->sph && !buf->sec_page) { - buf->sec_page = page_pool_dev_alloc_pages(rx_q->page_pool); - if (!buf->sec_page) - goto err_reinit_rx_buffers; - - buf->sec_addr = page_pool_get_dma_addr(buf->sec_page); - } - - stmmac_set_desc_addr(priv, p, buf->addr); - if (priv->sph) - stmmac_set_desc_sec_addr(priv, p, buf->sec_addr, true); - else - stmmac_set_desc_sec_addr(priv, p, buf->sec_addr, false); - if (priv->dma_buf_sz == BUF_SIZE_16KiB) - stmmac_init_desc3(priv, p); - } - } - - return; - -err_reinit_rx_buffers: - do { - while (--i >= 0) - stmmac_free_rx_buffer(priv, queue, i); - - if (queue == 0) - break; - - i = priv->dma_rx_size; - } while (queue-- > 0); -} - /** * init_dma_rx_desc_rings - init the RX descriptor rings * @dev: net device structure @@ -5428,7 +5346,7 @@ int stmmac_resume(struct device *dev) mutex_lock(&priv->lock); stmmac_reset_queues_param(priv); - stmmac_reinit_rx_buffers(priv); + stmmac_free_tx_skbufs(priv); stmmac_clear_descriptors(priv);