projects
/
linux-2.6-block.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
55ad95d
)
can: gs_usb: gs_usb_receive_bulk_callback(): count RX overflow errors also in case...
author
Marc Kleine-Budde
<mkl@pengutronix.de>
Tue, 4 Jul 2023 09:23:37 +0000
(11:23 +0200)
committer
Marc Kleine-Budde
<mkl@pengutronix.de>
Fri, 28 Jul 2023 06:52:03 +0000
(08:52 +0200)
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>
drivers/net/can/usb/gs_usb.c
patch
|
blob
|
blame
|
history
diff --git
a/drivers/net/can/usb/gs_usb.c
b/drivers/net/can/usb/gs_usb.c
index 0d0a3405ba19866f4468784ce754b95799d6739a..e302d7d568aa4505ece766f43bb87f28a72bfc27 100644
(file)
--- a/
drivers/net/can/usb/gs_usb.c
+++ b/
drivers/net/can/usb/gs_usb.c
@@
-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);
}