If can_send() fail, it should not update statistics in bcm_can_tx(). Add the result check for can_send() in bcm_can_tx(). Fixes: ffd980f976e7 ("[CAN]: Add broadcast manager (bcm) protocol") Signed-off-by: Ziyang Xuan <william.xuanziyang@xxxxxxxxxx> --- net/can/bcm.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/net/can/bcm.c b/net/can/bcm.c index e2783156bfd1..8f5d704a409f 100644 --- a/net/can/bcm.c +++ b/net/can/bcm.c @@ -298,7 +298,8 @@ static void bcm_can_tx(struct bcm_op *op) /* send with loopback */ skb->dev = dev; can_skb_set_owner(skb, op->sk); - can_send(skb, 1); + if (can_send(skb, 1)) + goto out; /* update statistics */ op->currframe++; -- 2.25.1