summaryrefslogtreecommitdiff
path: root/net/l2tp
diff options
context:
space:
mode:
authorToke Høiland-Jørgensen <toke@toke.dk>2018-07-02 22:52:20 +0200
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2018-07-25 11:24:00 +0200
commitec6a6039d7323abd1f28dafcf435700f072a1537 (patch)
tree0bde36290cb115bbd0a8ce313ee02db7a4529f73 /net/l2tp
parent1e02c4f403c0b7f53e9b31ca76352e5351163c7e (diff)
gen_stats: Fix netlink stats dumping in the presence of padding
[ Upstream commit d5a672ac9f48f81b20b1cad1d9ed7bbf4e418d4c ] The gen_stats facility will add a header for the toplevel nlattr of type TCA_STATS2 that contains all stats added by qdisc callbacks. A reference to this header is stored in the gnet_dump struct, and when all the per-qdisc callbacks have finished adding their stats, the length of the containing header will be adjusted to the right value. However, on architectures that need padding (i.e., that don't set CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS), the padding nlattr is added before the stats, which means that the stored pointer will point to the padding, and so when the header is fixed up, the result is just a very big padding nlattr. Because most qdiscs also supply the legacy TCA_STATS struct, this problem has been mostly invisible, but we exposed it with the netlink attribute-based statistics in CAKE. Fix the issue by fixing up the stored pointer if it points to a padding nlattr. Tested-by: Pete Heist <pete@heistp.net> Tested-by: Kevin Darbyshire-Bryant <kevin@darbyshire-bryant.me.uk> Signed-off-by: Toke Høiland-Jørgensen <toke@toke.dk> Signed-off-by: David S. Miller <davem@davemloft.net> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'net/l2tp')
0 files changed, 0 insertions, 0 deletions