From: Sascha Hauer <s.ha...@pengutronix.de> Use read-modify-write instead of a simple write to change the register contents, to close existing the race window between the original manual read and write.
Signed-off-by: Sascha Hauer <s.ha...@pengutronix.de> Signed-off-by: Marc Kleine-Budde <m...@pengutronix.de> --- drivers/net/can/mcp251x.c | 3 ++- 1 files changed, 2 insertions(+), 1 deletions(-) diff --git a/drivers/net/can/mcp251x.c b/drivers/net/can/mcp251x.c index 9b3466a..7e2f951 100644 --- a/drivers/net/can/mcp251x.c +++ b/drivers/net/can/mcp251x.c @@ -785,7 +785,8 @@ static irqreturn_t mcp251x_can_ist(int irq, void *dev_id) mcp251x_write_bits(spi, CANINTF, intf, 0x00); - mcp251x_write_reg(spi, EFLG, 0x00); + if (eflag) + mcp251x_write_bits(spi, EFLG, eflag, 0x00); /* Update can state */ if (eflag & EFLG_TXBO) { -- 1.7.0.4 _______________________________________________ Socketcan-core mailing list Socketcan-core@lists.berlios.de https://lists.berlios.de/mailman/listinfo/socketcan-core