diff mbox

sh_eth: add missing checks for status bits

Message ID 20161130200148.9011-1-chris.brandt@renesas.com (mailing list archive)
State Superseded
Delegated to: Geert Uytterhoeven
Headers show

Commit Message

Chris Brandt Nov. 30, 2016, 8:01 p.m. UTC
When streaming a lot of data and the RZ can't keep up, some status bits
will get set that are not being checked or cleared which cause the
following messages and the Ethernet driver to stop working. This
patch fixes that issue.

irq 21: nobody cared (try booting with the "irqpoll" option)
handlers:
[<c036b71c>] sh_eth_interrupt
Disabling IRQ #21

Fixes: db893473d313a4ad ("sh_eth: Add support for r7s72100")
Signed-off-by: Chris Brandt <chris.brandt@renesas.com>
---
 drivers/net/ethernet/renesas/sh_eth.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Simon Horman Dec. 1, 2016, 8:52 a.m. UTC | #1
On Wed, Nov 30, 2016 at 03:01:48PM -0500, Chris Brandt wrote:
> When streaming a lot of data and the RZ can't keep up, some status bits
> will get set that are not being checked or cleared which cause the
> following messages and the Ethernet driver to stop working. This
> patch fixes that issue.
> 
> irq 21: nobody cared (try booting with the "irqpoll" option)
> handlers:
> [<c036b71c>] sh_eth_interrupt
> Disabling IRQ #21
> 
> Fixes: db893473d313a4ad ("sh_eth: Add support for r7s72100")
> Signed-off-by: Chris Brandt <chris.brandt@renesas.com>

Hi Chris,

I am wondering if the EESR_FRC but should also be checked.

> ---
>  drivers/net/ethernet/renesas/sh_eth.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/net/ethernet/renesas/sh_eth.c b/drivers/net/ethernet/renesas/sh_eth.c
> index 05b0dc5..079f10e 100644
> --- a/drivers/net/ethernet/renesas/sh_eth.c
> +++ b/drivers/net/ethernet/renesas/sh_eth.c
> @@ -523,7 +523,7 @@ static struct sh_eth_cpu_data r7s72100_data = {
>  	.tx_check	= EESR_TC1 | EESR_FTC,
>  	.eesr_err_check	= EESR_TWB1 | EESR_TWB | EESR_TABT | EESR_RABT |
>  			  EESR_RFE | EESR_RDE | EESR_RFRMER | EESR_TFE |
> -			  EESR_TDE | EESR_ECI,
> +			  EESR_TDE | EESR_ECI | EESR_TUC | EESR_ROC,
>  	.fdr_value	= 0x0000070f,
>  
>  	.no_psr		= 1,
> -- 
> 2.10.1
> 
>
Sergei Shtylyov Dec. 1, 2016, 10:12 a.m. UTC | #2
Hello!

On 12/1/2016 11:52 AM, Simon Horman wrote:

>> When streaming a lot of data and the RZ can't keep up, some status bits
>> will get set that are not being checked or cleared which cause the
>> following messages and the Ethernet driver to stop working. This
>> patch fixes that issue.
>>
>> irq 21: nobody cared (try booting with the "irqpoll" option)
>> handlers:
>> [<c036b71c>] sh_eth_interrupt
>> Disabling IRQ #21
>>
>> Fixes: db893473d313a4ad ("sh_eth: Add support for r7s72100")
>> Signed-off-by: Chris Brandt <chris.brandt@renesas.com>
>
> Hi Chris,
>
> I am wondering if the EESR_FRC but should also be checked.

    EESR.FRC is not an error bit and it's part of EESR_RX_CHECK already.

MBR, Sergei
Sergei Shtylyov Dec. 1, 2016, 10:24 a.m. UTC | #3
Hello!

    Please always CC me on the sh_eth/ravb driver patches as directed by 
scripts/get_maintainer.pl.

On 11/30/2016 11:01 PM, Chris Brandt wrote:

> When streaming a lot of data and the RZ can't keep up, some status bits
> will get set that are not being checked or cleared which cause the
> following messages and the Ethernet driver to stop working. This
> patch fixes that issue.

    Perhaps we should just clear the correspoding bits in EESIPR instead? They 
are not set for any other SoC...

> irq 21: nobody cared (try booting with the "irqpoll" option)
> handlers:
> [<c036b71c>] sh_eth_interrupt
> Disabling IRQ #21
>
> Fixes: db893473d313a4ad ("sh_eth: Add support for r7s72100")
> Signed-off-by: Chris Brandt <chris.brandt@renesas.com>

MBR, Sergei
Chris Brandt Dec. 1, 2016, 1:13 p.m. UTC | #4
On 12/1/2016, Sergei Shtylyov wrote:

> Hello!

> 

>     Please always CC me on the sh_eth/ravb driver patches as directed by

> scripts/get_maintainer.pl.


OK. I'm sorry.


> On 11/30/2016 11:01 PM, Chris Brandt wrote:

> 

> > When streaming a lot of data and the RZ can't keep up, some status

> > bits will get set that are not being checked or cleared which cause

> > the following messages and the Ethernet driver to stop working. This

> > patch fixes that issue.

> 

>     Perhaps we should just clear the correspoding bits in EESIPR instead?

> They are not set for any other SoC...



That's a good point. If we don't plan on doing anything with those bits, they should not be causing interrupts.

I will try change and then re-test.


Chris
diff mbox

Patch

diff --git a/drivers/net/ethernet/renesas/sh_eth.c b/drivers/net/ethernet/renesas/sh_eth.c
index 05b0dc5..079f10e 100644
--- a/drivers/net/ethernet/renesas/sh_eth.c
+++ b/drivers/net/ethernet/renesas/sh_eth.c
@@ -523,7 +523,7 @@  static struct sh_eth_cpu_data r7s72100_data = {
 	.tx_check	= EESR_TC1 | EESR_FTC,
 	.eesr_err_check	= EESR_TWB1 | EESR_TWB | EESR_TABT | EESR_RABT |
 			  EESR_RFE | EESR_RDE | EESR_RFRMER | EESR_TFE |
-			  EESR_TDE | EESR_ECI,
+			  EESR_TDE | EESR_ECI | EESR_TUC | EESR_ROC,
 	.fdr_value	= 0x0000070f,
 
 	.no_psr		= 1,