Message ID | 20211005010508.2194560-3-eric.dumazet@gmail.com (mailing list archive) |
---|---|
State | Accepted |
Commit | 0854a0513321cf70bea5fa483ebcaa983cc7c62e |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | net: bridge: br_get_linkxstats_size() fixes | expand |
Context | Check | Description |
---|---|---|
netdev/cover_letter | success | Series has a cover letter |
netdev/fixes_present | success | Fixes tag present in non-next series |
netdev/patch_count | success | Link |
netdev/tree_selection | success | Clearly marked for net |
netdev/subject_prefix | success | Link |
netdev/cc_maintainers | warning | 2 maintainers not CCed: bridge@lists.linux-foundation.org roopa@nvidia.com |
netdev/source_inline | success | Was 0 now: 0 |
netdev/verify_signedoff | success | Signed-off-by tag matches author and committer |
netdev/module_param | success | Was 0 now: 0 |
netdev/build_32bit | success | Errors and warnings before: 0 this patch: 0 |
netdev/kdoc | success | Errors and warnings before: 0 this patch: 0 |
netdev/verify_fixes | success | Fixes tag looks correct |
netdev/checkpatch | success | total: 0 errors, 0 warnings, 0 checks, 7 lines checked |
netdev/build_allmodconfig_warn | success | Errors and warnings before: 0 this patch: 0 |
netdev/header_inline | success | No static functions without inline keyword in header files |
On 05/10/2021 04:05, Eric Dumazet wrote: > From: Eric Dumazet <edumazet@google.com> > > Commit de1799667b00 ("net: bridge: add STP xstats") > added an additional nla_reserve_64bit() in br_fill_linkxstats(), > but forgot to update br_get_linkxstats_size() accordingly. > > This can trigger the following in rtnl_stats_get() > > WARN_ON(err == -EMSGSIZE); > > Fixes: de1799667b00 ("net: bridge: add STP xstats") > Signed-off-by: Eric Dumazet <edumazet@google.com> > Cc: Vivien Didelot <vivien.didelot@gmail.com> > Cc: Nikolay Aleksandrov <nikolay@nvidia.com> > --- > net/bridge/br_netlink.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/net/bridge/br_netlink.c b/net/bridge/br_netlink.c > index 29b8f6373fb925d48ce876dcda7fccc10539240a..5c6c4305ed235891b2ed5c5a17eb8382f2aec1a0 100644 > --- a/net/bridge/br_netlink.c > +++ b/net/bridge/br_netlink.c > @@ -1667,6 +1667,7 @@ static size_t br_get_linkxstats_size(const struct net_device *dev, int attr) > > return numvls * nla_total_size(sizeof(struct bridge_vlan_xstats)) + > nla_total_size_64bit(sizeof(struct br_mcast_stats)) + > + (p ? nla_total_size_64bit(sizeof(p->stp_xstats)) : 0) + > nla_total_size(0); > } > > Acked-by: Nikolay Aleksandrov <nikolay@nvidia.com>
diff --git a/net/bridge/br_netlink.c b/net/bridge/br_netlink.c index 29b8f6373fb925d48ce876dcda7fccc10539240a..5c6c4305ed235891b2ed5c5a17eb8382f2aec1a0 100644 --- a/net/bridge/br_netlink.c +++ b/net/bridge/br_netlink.c @@ -1667,6 +1667,7 @@ static size_t br_get_linkxstats_size(const struct net_device *dev, int attr) return numvls * nla_total_size(sizeof(struct bridge_vlan_xstats)) + nla_total_size_64bit(sizeof(struct br_mcast_stats)) + + (p ? nla_total_size_64bit(sizeof(p->stp_xstats)) : 0) + nla_total_size(0); }