ipvlan: properly track tx_errors
authorEric Dumazet <edumazet@google.com>
Thu, 26 Oct 2023 13:14:46 +0000 (13:14 +0000)
committerJakub Kicinski <kuba@kernel.org>
Fri, 27 Oct 2023 21:49:09 +0000 (14:49 -0700)
commitff672b9ffeb3f82135488ac16c5c5eb4b992999b
treef22a14dc9e2bad8bf0e3ac177705fedc0a965b92
parent6aff7cbfe7bfafbed86a6948e660e280848c4d97
ipvlan: properly track tx_errors

Both ipvlan_process_v4_outbound() and ipvlan_process_v6_outbound()
increment dev->stats.tx_errors in case of errors.

Unfortunately there are two issues :

1) ipvlan_get_stats64() does not propagate dev->stats.tx_errors to user.

2) Increments are not atomic. KCSAN would complain eventually.

Use DEV_STATS_INC() to not miss an update, and change ipvlan_get_stats64()
to copy the value back to user.

Fixes: 2ad7bf363841 ("ipvlan: Initial check-in of the IPVLAN driver.")
Signed-off-by: Eric Dumazet <edumazet@google.com>
Cc: Mahesh Bandewar <maheshb@google.com>
Link: https://lore.kernel.org/r/20231026131446.3933175-1-edumazet@google.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ipvlan/ipvlan_core.c
drivers/net/ipvlan/ipvlan_main.c