On 05.10.2021 13:30:23, Brandon Maier wrote: > When the at91_can is a single node on the bus and a user attempts to > transmit, the can state machine will report ack errors and increment the > transmit error count until it reaches the passive-state. Per the > specification, it will then transmit with a passive error, but will stop > incrementing the transmit error count. This results in the host machine > being flooded with the AERR interrupt forever, or until another node > rejoins the bus. > > To prevent the AERR flooding, disable the AERR interrupt when we are in > passive mode. Can you implement Bus Error Reporting? | https://elixir.bootlin.com/linux/v5.14/source/include/uapi/linux/can/netlink.h#L99 This way the user can control if bus errors, and the ACK error is one of them, should be reported. Bus error reporting is disabled by default. I think enabling AT91_IRQ_ERR_FRAME only if CAN_CTRLMODE_BERR_REPORTING is active should do the trick. regards, Marc -- Pengutronix e.K. | Marc Kleine-Budde | Embedded Linux | https://www.pengutronix.de | Vertretung West/Dortmund | Phone: +49-231-2826-924 | Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
Attachment:
signature.asc
Description: PGP signature