From: Greg Rose Date: Mon, 5 Sep 2011 15:11:40 +0000 (+0200) Subject: rtnetlink: Compute and store minimum ifinfo dump size X-Git-Tag: v6.9~2 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=c6d574d9fd42e96a5c04ce94a4758b9714e07a78;p=ipset rtnetlink: Compute and store minimum ifinfo dump size [The patch changes the API of the netlink_dump_start interface: port it to the standalone ipset package.] 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 Signed-off-by: Jeff Kirsher --- diff --git a/kernel/net/netfilter/ipset/ip_set_core.c b/kernel/net/netfilter/ipset/ip_set_core.c index 8571979..e9169e8 100644 --- a/kernel/net/netfilter/ipset/ip_set_core.c +++ b/kernel/net/netfilter/ipset/ip_set_core.c @@ -1172,7 +1172,11 @@ ip_set_dump(struct sock *ctnl, struct sk_buff *skb, return netlink_dump_start(ctnl, skb, nlh, ip_set_dump_start, +#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 1, 0) ip_set_dump_done); +#else + ip_set_dump_done, 0); +#endif } /* Add, del and test */