Re: [PATCH v2] can: c_can: c_can_poll(): only read status register after status IRQ

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On di, 08 okt 2019 12:02:15 +0200, Marc Kleine-Budde wrote:
> On 10/8/19 11:57 AM, Marc Kleine-Budde wrote:
> > From: Kurt Van Dijck <dev.kurt@xxxxxxxxxxxxxxxxxxxxxx>
> > 
> > When the status register is read without status IRQ pending, it may get
> > into a state that it goes into busoff state without having its irq
> > activated, so the driver will never know.
> 
> Can you help rephrasing the patch description.
> 
> I understand the problem is that we should only read the status register
> if there is a status IRQ. But what are the consequences regarding the
> busoff state?

busoff is the last irq you'll get :-)
If you miss that one, you'll never catch in again.

The observation is that you have some bus errors, but the driver doesn't
know that the chip went in busoff, so it will never wake up again.

Only solution is to set link down & up again.

What's your opinion about this one:

When the status register is read without the status IRQ pending, the
chip may not raise the interrupt line for an upcoming status interrupt
and the driver may miss a status interrupt.
It is critical that the BUSOFF status interrupt is informed to the
higher layers, since no more interrupts will follow without
intervention.



[Index of Archives]     [Automotive Discussions]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]     [CAN Bus]

  Powered by Linux