Commit ef5034ae authored by Dario Binacchi's avatar Dario Binacchi Committed by Marc Kleine-Budde
Browse files

can: hi311x: hi3110_can_ist(): update state error statistics if skb allocation fails



Ensure that the statistics related to state error counters
(i. e. warning, passive, and bus-off) are updated even in case the skb
allocation fails. Additionally, also handle bus-off state is now.

Signed-off-by: default avatarDario Binacchi <dario.binacchi@amarulasolutions.com>
Link: https://patch.msgid.link/20241122221650.633981-6-dario.binacchi@amarulasolutions.com


Signed-off-by: default avatarMarc Kleine-Budde <mkl@pengutronix.de>
parent 9ad86d37
Loading
Loading
Loading
Loading
+3 −4
Original line number Diff line number Diff line
@@ -663,8 +663,6 @@ static irqreturn_t hi3110_can_ist(int irq, void *dev_id)
			u8 rxerr, txerr;

			skb = alloc_can_err_skb(net, &cf);
			if (!skb)
				break;

			txerr = hi3110_read(spi, HI3110_READ_TEC);
			rxerr = hi3110_read(spi, HI3110_READ_REC);
@@ -673,6 +671,7 @@ static irqreturn_t hi3110_can_ist(int irq, void *dev_id)
			can_change_state(net, cf, tx_state, rx_state);

			if (new_state == CAN_STATE_BUS_OFF) {
				if (skb)
					netif_rx(skb);
				can_bus_off(net);
				if (priv->can.restart_ms == 0) {
@@ -680,7 +679,7 @@ static irqreturn_t hi3110_can_ist(int irq, void *dev_id)
					hi3110_hw_sleep(spi);
					break;
				}
			} else {
			} else if (skb) {
				cf->can_id |= CAN_ERR_CNT;
				cf->data[6] = txerr;
				cf->data[7] = rxerr;