[PATCH net] net: broadcom: bcm4908_enet: enable RX after processing packets

Subsystems: broadcom bcm4908 ethernet driver, networking drivers, the rest

STALE1986d LANDED

Landed in mainline as d313d16bbaea on 2021-02-28.

3 messages, 3 authors, 2021-02-28 · open the first message on its own page

[PATCH net] net: broadcom: bcm4908_enet: enable RX after processing packets

From: Rafał Miłecki <zajec5@gmail.com>
Date: 2021-02-26 13:21:51

From: Rafał Miłecki <rafal@milecki.pl>

When receiving a lot of packets hardware may run out of free
descriptiors and stop RX ring. Enable it every time after handling
received packets.

Fixes: 4feffeadbcb2 ("net: broadcom: bcm4908enet: add BCM4908 controller driver")
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
---
 drivers/net/ethernet/broadcom/bcm4908_enet.c | 3 +++
 1 file changed, 3 insertions(+)
diff --git a/drivers/net/ethernet/broadcom/bcm4908_enet.c b/drivers/net/ethernet/broadcom/bcm4908_enet.c
index 0b70e9e0ddad..98cf82dea3e4 100644
--- a/drivers/net/ethernet/broadcom/bcm4908_enet.c
+++ b/drivers/net/ethernet/broadcom/bcm4908_enet.c
@@ -592,6 +592,9 @@ static int bcm4908_enet_poll(struct napi_struct *napi, int weight)
 		bcm4908_enet_intrs_on(enet);
 	}
 
+	/* Hardware could disable ring if it run out of descriptors */
+	bcm4908_enet_dma_rx_ring_enable(enet, &enet->rx_ring);
+
 	return handled;
 }
 
-- 
2.26.2

Re: [PATCH net] net: broadcom: bcm4908_enet: enable RX after processing packets

From: Florian Fainelli <f.fainelli@gmail.com>
Date: 2021-02-27 16:40:24


On 2/26/2021 5:20 AM, Rafał Miłecki wrote:
From: Rafał Miłecki <rafal@milecki.pl>

When receiving a lot of packets hardware may run out of free
descriptiors and stop RX ring. Enable it every time after handling
received packets.

Fixes: 4feffeadbcb2 ("net: broadcom: bcm4908enet: add BCM4908 controller driver")
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
Acked-by: Florian Fainelli <f.fainelli@gmail.com>
-- 
Florian

Re: [PATCH net] net: broadcom: bcm4908_enet: enable RX after processing packets

From: Jakub Kicinski <kuba@kernel.org>
Date: 2021-02-28 19:55:20

On Sat, 27 Feb 2021 08:38:24 -0800 Florian Fainelli wrote:
On 2/26/2021 5:20 AM, Rafał Miłecki wrote:
quoted
From: Rafał Miłecki <rafal@milecki.pl>

When receiving a lot of packets hardware may run out of free
descriptiors and stop RX ring. Enable it every time after handling
received packets.

Fixes: 4feffeadbcb2 ("net: broadcom: bcm4908enet: add BCM4908 controller driver")
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>  
Acked-by: Florian Fainelli <f.fainelli@gmail.com>
Applied, thanks!

Out of curiosity - is the performance not impacted by this change?
bcm4908_enet_dma_rx_ring_enable() does an RMW, the read could possibly
removed by caching the expected value.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help