can: gs_usb: gs_usb_receive_bulk_callback(): count RX overflow errors also in case of OOM
In case of an RX overflow error from the CAN controller and an OOM where no skb can be allocated, the error counters are not incremented. Fix this by first incrementing the error counters and then allocate the skb. Fixes: d08e973a77d1 ("can: gs_usb: Added support for the GS_USB CAN devices") Link: https://lore.kernel.org/all/20230718-gs_usb-cleanups-v1-7-c3b9154ec605@pengutronix.de Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
This commit is contained in:
parent
55ad95d944
commit
6c8bc15f02
@ -631,6 +631,9 @@ static void gs_usb_receive_bulk_callback(struct urb *urb)
|
||||
}
|
||||
|
||||
if (hf->flags & GS_CAN_FLAG_OVERFLOW) {
|
||||
stats->rx_over_errors++;
|
||||
stats->rx_errors++;
|
||||
|
||||
skb = alloc_can_err_skb(netdev, &cf);
|
||||
if (!skb)
|
||||
goto resubmit_urb;
|
||||
@ -638,8 +641,6 @@ static void gs_usb_receive_bulk_callback(struct urb *urb)
|
||||
cf->can_id |= CAN_ERR_CRTL;
|
||||
cf->len = CAN_ERR_DLC;
|
||||
cf->data[1] = CAN_ERR_CRTL_RX_OVERFLOW;
|
||||
stats->rx_over_errors++;
|
||||
stats->rx_errors++;
|
||||
netif_rx(skb);
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user