2015-05-04 17:43:55

by Nathan Sullivan

[permalink] [raw]
Subject: [PATCH] net: macb: Do not enable RX buffer used interrupt

This driver does not handle the RX buffer used interrupt, nor does
it need to due to handling the RX overflow interrupt already. Enabling
the interrupt would lead to an infinite loop in the ISR.

Signed-off-by: Nathan Sullivan <[email protected]>
---
drivers/net/ethernet/cadence/macb.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/drivers/net/ethernet/cadence/macb.c b/drivers/net/ethernet/cadence/macb.c
index 4104d49..b466697 100644
--- a/drivers/net/ethernet/cadence/macb.c
+++ b/drivers/net/ethernet/cadence/macb.c
@@ -44,8 +44,7 @@
/* level of occupied TX descriptors under which we wake up TX process */
#define MACB_TX_WAKEUP_THRESH (3 * TX_RING_SIZE / 4)

-#define MACB_RX_INT_FLAGS (MACB_BIT(RCOMP) | MACB_BIT(RXUBR) \
- | MACB_BIT(ISR_ROVR))
+#define MACB_RX_INT_FLAGS (MACB_BIT(RCOMP) | MACB_BIT(ISR_ROVR))
#define MACB_TX_ERR_FLAGS (MACB_BIT(ISR_TUND) \
| MACB_BIT(ISR_RLE) \
| MACB_BIT(TXERR))
--
1.7.10.4


2015-05-04 22:18:09

by Nathan Sullivan

[permalink] [raw]
Subject: Re: [PATCH] net: macb: Do not enable RX buffer used interrupt

On Mon, May 04, 2015 at 12:43:15PM -0500, Nathan Sullivan wrote:
> This driver does not handle the RX buffer used interrupt, nor does
> it need to due to handling the RX overflow interrupt already. Enabling
> the interrupt would lead to an infinite loop in the ISR.
>

Well, that may have been premature. We are seeing the RXUBR interrupt get
stuck asserted on Zynq hardware, and I failed to realize the driver clears
RXUBR already in macb_interrupt... Not enabling that interrupt keeps my
system responsive, but it's not the correct solution to this issue.