]> granicus.if.org Git - ipset/commitdiff
rtnetlink: Compute and store minimum ifinfo dump size
authorGreg Rose <gregory.v.rose@intel.com>
Mon, 5 Sep 2011 15:11:40 +0000 (17:11 +0200)
committerJozsef Kadlecsik <kadlec@blackhole.kfki.hu>
Mon, 5 Sep 2011 15:11:40 +0000 (17:11 +0200)
[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 <gregory.v.rose@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
kernel/net/netfilter/ipset/ip_set_core.c

index 8571979e5f9a98fb68d1c12858bc75f9b4fb0942..e9169e8b52a704ffce66edb19809158e30d651f7 100644 (file)
@@ -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 */