1 From 36aea60fc892ce73f96d45dc7eb239c7c4c1fa69 Mon Sep 17 00:00:00 2001
2 From: Jimmy Assarsson <extja@kvaser.com>
3 Date: Wed, 8 Dec 2021 16:21:21 +0100
4 Subject: can: kvaser_pciefd: kvaser_pciefd_rx_error_frame(): increase correct stats->{rx,tx}_errors counter
6 From: Jimmy Assarsson <extja@kvaser.com>
8 commit 36aea60fc892ce73f96d45dc7eb239c7c4c1fa69 upstream.
10 Check the direction bit in the error frame packet (EPACK) to determine
11 which net_device_stats {rx,tx}_errors counter to increase.
13 Fixes: 26ad340e582d ("can: kvaser_pciefd: Add driver for Kvaser PCIEcan devices")
14 Link: https://lore.kernel.org/all/20211208152122.250852-1-extja@kvaser.com
15 Cc: stable@vger.kernel.org
16 Signed-off-by: Jimmy Assarsson <extja@kvaser.com>
17 Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
18 Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
20 drivers/net/can/kvaser_pciefd.c | 8 +++++++-
21 1 file changed, 7 insertions(+), 1 deletion(-)
23 --- a/drivers/net/can/kvaser_pciefd.c
24 +++ b/drivers/net/can/kvaser_pciefd.c
25 @@ -248,6 +248,9 @@ MODULE_DESCRIPTION("CAN driver for Kvase
26 #define KVASER_PCIEFD_SPACK_EWLR BIT(23)
27 #define KVASER_PCIEFD_SPACK_EPLR BIT(24)
29 +/* Kvaser KCAN_EPACK second word */
30 +#define KVASER_PCIEFD_EPACK_DIR_TX BIT(0)
34 struct kvaser_pciefd_can {
35 @@ -1285,7 +1288,10 @@ static int kvaser_pciefd_rx_error_frame(
38 can->can.can_stats.bus_error++;
40 + if (p->header[1] & KVASER_PCIEFD_EPACK_DIR_TX)
45 can->bec.txerr = bec.txerr;
46 can->bec.rxerr = bec.rxerr;