summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSabrina Dubroca <sd@queasysnail.net>2016-11-15 11:16:35 +0100
committerDavid S. Miller <davem@davemloft.net>2016-11-16 04:40:07 +0100
commitb3cfaa31e3851c743d3f9d3441710f7ff6f7e868 (patch)
tree7ca9875d19d7f4f010c020ca053252f88e8e014a
parentrtnetlink: fix rtnl_vfinfo_size (diff)
downloadlinux-b3cfaa31e3851c743d3f9d3441710f7ff6f7e868.tar.xz
linux-b3cfaa31e3851c743d3f9d3441710f7ff6f7e868.zip
rtnetlink: fix rtnl message size computation for XDP
rtnl_xdp_size() only considers the size of the actual payload attribute, and misses the space taken by the attribute used for nesting (IFLA_XDP). Fixes: d1fdd9138682 ("rtnl: add option for setting link xdp prog") Signed-off-by: Sabrina Dubroca <sd@queasysnail.net> Reviewed-by: Brenden Blanco <bblanco@plumgrid.com> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--net/core/rtnetlink.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/net/core/rtnetlink.c b/net/core/rtnetlink.c
index 96f4bf274e30..a6529c55ffb7 100644
--- a/net/core/rtnetlink.c
+++ b/net/core/rtnetlink.c
@@ -901,7 +901,8 @@ static size_t rtnl_port_size(const struct net_device *dev,
static size_t rtnl_xdp_size(const struct net_device *dev)
{
- size_t xdp_size = nla_total_size(1); /* XDP_ATTACHED */
+ size_t xdp_size = nla_total_size(0) + /* nest IFLA_XDP */
+ nla_total_size(1); /* XDP_ATTACHED */
if (!dev->netdev_ops->ndo_xdp)
return 0;