summaryrefslogtreecommitdiffstats
path: root/net/ipv6/proc.c
diff options
context:
space:
mode:
authorYOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>2007-04-21 00:56:48 +0200
committerDavid S. Miller <davem@sunset.davemloft.net>2007-04-26 07:29:11 +0200
commit49ed67a9eee3c756263feed4474e4fcf5c8eaed2 (patch)
tree41e989b08578e3a76c055c3f45ae4fc24dae59a2 /net/ipv6/proc.c
parent[IPV6] SNMP: Netlink interface. (diff)
downloadlinux-49ed67a9eee3c756263feed4474e4fcf5c8eaed2.tar.xz
linux-49ed67a9eee3c756263feed4474e4fcf5c8eaed2.zip
[IPV6] SNMP: Move some statistic bits to net/ipv6/proc.c.
Signed-off-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv6/proc.c')
-rw-r--r--net/ipv6/proc.c30
1 files changed, 30 insertions, 0 deletions
diff --git a/net/ipv6/proc.c b/net/ipv6/proc.c
index 0dc551501519..5c3ce1c687c9 100644
--- a/net/ipv6/proc.c
+++ b/net/ipv6/proc.c
@@ -346,4 +346,34 @@ int snmp6_free_dev(struct inet6_dev *idev)
return 0;
}
+int snmp6_mib_init(void *ptr[2], size_t mibsize, size_t mibalign)
+{
+ if (ptr == NULL)
+ return -EINVAL;
+
+ ptr[0] = __alloc_percpu(mibsize);
+ if (!ptr[0])
+ goto err0;
+
+ ptr[1] = __alloc_percpu(mibsize);
+ if (!ptr[1])
+ goto err1;
+
+ return 0;
+
+err1:
+ free_percpu(ptr[0]);
+ ptr[0] = NULL;
+err0:
+ return -ENOMEM;
+}
+
+void snmp6_mib_free(void *ptr[2])
+{
+ if (ptr == NULL)
+ return;
+ free_percpu(ptr[0]);
+ free_percpu(ptr[1]);
+ ptr[0] = ptr[1] = NULL;
+}