diff options
author | Greg Rose <gregory.v.rose@intel.com> | 2013-01-04 00:32:54 +0000 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2013-01-17 08:43:58 -0800 |
commit | 2e3cbdeae8e4d13087657d95ed7a5be57dc9695e (patch) | |
tree | c72f2246ae87fffe750e24b4ac827cab2cde9d3b /include/linux | |
parent | 4a6cf0c4f4f8465d61adbf3aaaec2bd100e30d97 (diff) | |
download | kernel_samsung_tuna-2e3cbdeae8e4d13087657d95ed7a5be57dc9695e.zip kernel_samsung_tuna-2e3cbdeae8e4d13087657d95ed7a5be57dc9695e.tar.gz kernel_samsung_tuna-2e3cbdeae8e4d13087657d95ed7a5be57dc9695e.tar.bz2 |
rtnetlink: Compute and store minimum ifinfo dump size
commit c7ac8679bec9397afe8918f788cbcef88c38da54 upstream.
The message size allocated for rtnl ifinfo dumps was limited to
a single page. This is not enough for additional interface info
available with devices that support SR-IOV and caused a bug in
which VF info would not be displayed if more than approximately
40 VFs were created per interface.
Implement a new function pointer for the rtnl_register service that will
calculate the amount of data required for the ifinfo dump and allocate
enough data to satisfy the request.
Signed-off-by: Greg Rose <gregory.v.rose@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Cc: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'include/linux')
-rw-r--r-- | include/linux/netlink.h | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/include/linux/netlink.h b/include/linux/netlink.h index a9dd895..fdd0188 100644 --- a/include/linux/netlink.h +++ b/include/linux/netlink.h @@ -221,7 +221,8 @@ struct netlink_callback { int (*dump)(struct sk_buff * skb, struct netlink_callback *cb); int (*done)(struct netlink_callback *cb); - int family; + u16 family; + u16 min_dump_alloc; long args[6]; }; @@ -259,7 +260,8 @@ __nlmsg_put(struct sk_buff *skb, u32 pid, u32 seq, int type, int len, int flags) extern int netlink_dump_start(struct sock *ssk, struct sk_buff *skb, const struct nlmsghdr *nlh, int (*dump)(struct sk_buff *skb, struct netlink_callback*), - int (*done)(struct netlink_callback*)); + int (*done)(struct netlink_callback*), + u16 min_dump_alloc); #define NL_NONROOT_RECV 0x1 |