aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/drivers/net/can
diff options
context:
space:
mode:
authorMarc Kleine-Budde <mkl@pengutronix.de>2023-09-28 10:05:17 +0200
committerMarc Kleine-Budde <mkl@pengutronix.de>2023-10-05 21:47:33 +0200
commit3db6154e44dba8626cd6e31e15bd29d1c3861ca8 (patch)
tree666702145d35ff9b3a2cdc22858b60010e522844 /drivers/net/can
parentcan: at91_can: at91_irq_err_line(): make use of can_change_state() and can_bus_off() (diff)
downloadwireguard-linux-3db6154e44dba8626cd6e31e15bd29d1c3861ca8.tar.xz
wireguard-linux-3db6154e44dba8626cd6e31e15bd29d1c3861ca8.zip
can: at91_can: at91_irq_err_line(): send error counters with state change
Since 3e5c291c7942 ("can: add CAN_ERR_CNT flag to notify availability of error counter") there is a dedicated flag to inform the user space, that there are CAN error counters in the CAN error frame. In case the device is not in bus off mode, send the error counters to user space and set CAN_ERR_CNT. Link: https://lore.kernel.org/all/20231005-at91_can-rx_offload-v2-25-9987d53600e0@pengutronix.de Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
Diffstat (limited to 'drivers/net/can')
-rw-r--r--drivers/net/can/at91_can.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/net/can/at91_can.c b/drivers/net/can/at91_can.c
index a413589109b2..d5e1d1b2cdd1 100644
--- a/drivers/net/can/at91_can.c
+++ b/drivers/net/can/at91_can.c
@@ -884,6 +884,11 @@ static void at91_irq_err_line(struct net_device *dev, const u32 reg_sr)
if (unlikely(!skb))
return;
+ if (new_state != CAN_STATE_BUS_OFF) {
+ cf->can_id |= CAN_ERR_CNT;
+ cf->data[6] = bec.txerr;
+ cf->data[7] = bec.rxerr;
+ }
netif_rx(skb);
}