* [PATCH] can: m_can: Disable and ignore ELO interrupt
@ 2021-12-11 21:30 Marc Kleine-Budde
2021-12-12 13:19 ` Greg KH
0 siblings, 1 reply; 2+ messages in thread
From: Marc Kleine-Budde @ 2021-12-11 21:30 UTC (permalink / raw)
To: stable; +Cc: Brian Silverman, Marc Kleine-Budde
From: Brian Silverman <brian.silverman@bluerivertech.com>
Commit f58ac1adc76b5beda43c64ef359056077df4d93a upstream.
With the design of this driver, this condition is often triggered.
However, the counter that this interrupt indicates an overflow is never
read either, so overflowing is harmless.
On my system, when a CAN bus starts flapping up and down, this locks up
the whole system with lots of interrupts and printks.
Specifically, this interrupt indicates the CEL field of ECR has
overflowed. All reads of ECR mask out CEL.
Fixes: e0d1f4816f2a ("can: m_can: add Bosch M_CAN controller support")
Link: https://lore.kernel.org/all/20211129222628.7490-1-brian.silverman@bluerivertech.com
Cc: stable@vger.kernel.org
Signed-off-by: Brian Silverman <brian.silverman@bluerivertech.com>
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
---
Hey Greg,
this is
| f58ac1adc76b ("can: m_can: Disable and ignore ELO interrupt")
checrry picked onto v5.10. The patch applied without any problems,
won't know why it didn't work in your side.
regards,
Marc
drivers/net/can/m_can/m_can.c | 14 ++++++--------
1 file changed, 6 insertions(+), 8 deletions(-)
diff --git a/drivers/net/can/m_can/m_can.c b/drivers/net/can/m_can/m_can.c
index 62bcef4bb95f..19a7e4adb933 100644
--- a/drivers/net/can/m_can/m_can.c
+++ b/drivers/net/can/m_can/m_can.c
@@ -207,15 +207,15 @@ enum m_can_reg {
/* Interrupts for version 3.0.x */
#define IR_ERR_LEC_30X (IR_STE | IR_FOE | IR_ACKE | IR_BE | IR_CRCE)
-#define IR_ERR_BUS_30X (IR_ERR_LEC_30X | IR_WDI | IR_ELO | IR_BEU | \
- IR_BEC | IR_TOO | IR_MRAF | IR_TSW | IR_TEFL | \
- IR_RF1L | IR_RF0L)
+#define IR_ERR_BUS_30X (IR_ERR_LEC_30X | IR_WDI | IR_BEU | IR_BEC | \
+ IR_TOO | IR_MRAF | IR_TSW | IR_TEFL | IR_RF1L | \
+ IR_RF0L)
#define IR_ERR_ALL_30X (IR_ERR_STATE | IR_ERR_BUS_30X)
/* Interrupts for version >= 3.1.x */
#define IR_ERR_LEC_31X (IR_PED | IR_PEA)
-#define IR_ERR_BUS_31X (IR_ERR_LEC_31X | IR_WDI | IR_ELO | IR_BEU | \
- IR_BEC | IR_TOO | IR_MRAF | IR_TSW | IR_TEFL | \
- IR_RF1L | IR_RF0L)
+#define IR_ERR_BUS_31X (IR_ERR_LEC_31X | IR_WDI | IR_BEU | IR_BEC | \
+ IR_TOO | IR_MRAF | IR_TSW | IR_TEFL | IR_RF1L | \
+ IR_RF0L)
#define IR_ERR_ALL_31X (IR_ERR_STATE | IR_ERR_BUS_31X)
/* Interrupt Line Select (ILS) */
@@ -752,8 +752,6 @@ static void m_can_handle_other_err(struct net_device *dev, u32 irqstatus)
{
if (irqstatus & IR_WDI)
netdev_err(dev, "Message RAM Watchdog event due to missing READY\n");
- if (irqstatus & IR_ELO)
- netdev_err(dev, "Error Logging Overflow\n");
if (irqstatus & IR_BEU)
netdev_err(dev, "Bit Error Uncorrected\n");
if (irqstatus & IR_BEC)
--
2.33.0
^ permalink raw reply related [flat|nested] 2+ messages in thread* Re: [PATCH] can: m_can: Disable and ignore ELO interrupt
2021-12-11 21:30 [PATCH] can: m_can: Disable and ignore ELO interrupt Marc Kleine-Budde
@ 2021-12-12 13:19 ` Greg KH
0 siblings, 0 replies; 2+ messages in thread
From: Greg KH @ 2021-12-12 13:19 UTC (permalink / raw)
To: Marc Kleine-Budde; +Cc: stable, Brian Silverman
On Sat, Dec 11, 2021 at 10:30:11PM +0100, Marc Kleine-Budde wrote:
> From: Brian Silverman <brian.silverman@bluerivertech.com>
>
> Commit f58ac1adc76b5beda43c64ef359056077df4d93a upstream.
>
> With the design of this driver, this condition is often triggered.
> However, the counter that this interrupt indicates an overflow is never
> read either, so overflowing is harmless.
>
> On my system, when a CAN bus starts flapping up and down, this locks up
> the whole system with lots of interrupts and printks.
>
> Specifically, this interrupt indicates the CEL field of ECR has
> overflowed. All reads of ECR mask out CEL.
>
> Fixes: e0d1f4816f2a ("can: m_can: add Bosch M_CAN controller support")
> Link: https://lore.kernel.org/all/20211129222628.7490-1-brian.silverman@bluerivertech.com
> Cc: stable@vger.kernel.org
> Signed-off-by: Brian Silverman <brian.silverman@bluerivertech.com>
> Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
> ---
> Hey Greg,
>
> this is
> | f58ac1adc76b ("can: m_can: Disable and ignore ELO interrupt")
> checrry picked onto v5.10. The patch applied without any problems,
> won't know why it didn't work in your side.
This worked, thanks.
Can I get a working backport for 4.4.y and 4.9.y as well?
thanks,
greg k-h
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2021-12-12 13:19 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2021-12-11 21:30 [PATCH] can: m_can: Disable and ignore ELO interrupt Marc Kleine-Budde
2021-12-12 13:19 ` Greg KH
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox