summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/net/netns/core.h1
-rw-r--r--include/net/sock.h3
-rw-r--r--net/core/sock.c12
3 files changed, 3 insertions, 13 deletions
diff --git a/include/net/netns/core.h b/include/net/netns/core.h
index 36c2d998a43c..552bc25b1933 100644
--- a/include/net/netns/core.h
+++ b/include/net/netns/core.h
@@ -12,7 +12,6 @@ struct netns_core {
int sysctl_somaxconn;
#ifdef CONFIG_PROC_FS
- int __percpu *sock_inuse;
struct prot_inuse __percpu *prot_inuse;
#endif
};
diff --git a/include/net/sock.h b/include/net/sock.h
index c4c981a51797..5589312531df 100644
--- a/include/net/sock.h
+++ b/include/net/sock.h
@@ -1431,6 +1431,7 @@ proto_memory_pressure(struct proto *prot)
#ifdef CONFIG_PROC_FS
#define PROTO_INUSE_NR 64 /* should be enough for the first time */
struct prot_inuse {
+ int all;
int val[PROTO_INUSE_NR];
};
/* Called with local bh disabled */
@@ -1442,7 +1443,7 @@ static inline void sock_prot_inuse_add(const struct net *net,
static inline void sock_inuse_add(const struct net *net, int val)
{
- this_cpu_add(*net->core.sock_inuse, val);
+ this_cpu_add(net->core.prot_inuse->all, val);
}
int sock_prot_inuse_get(struct net *net, struct proto *proto);
diff --git a/net/core/sock.c b/net/core/sock.c
index a9bd22b883b9..d7fc8b5e2569 100644
--- a/net/core/sock.c
+++ b/net/core/sock.c
@@ -3553,7 +3553,7 @@ int sock_inuse_get(struct net *net)
int cpu, res = 0;
for_each_possible_cpu(cpu)
- res += *per_cpu_ptr(net->core.sock_inuse, cpu);
+ res += per_cpu_ptr(net->core.prot_inuse, cpu)->all;
return res;
}
@@ -3565,22 +3565,12 @@ static int __net_init sock_inuse_init_net(struct net *net)
net->core.prot_inuse = alloc_percpu(struct prot_inuse);
if (net->core.prot_inuse == NULL)
return -ENOMEM;
-
- net->core.sock_inuse = alloc_percpu(int);
- if (net->core.sock_inuse == NULL)
- goto out;
-
return 0;
-
-out:
- free_percpu(net->core.prot_inuse);
- return -ENOMEM;
}
static void __net_exit sock_inuse_exit_net(struct net *net)
{
free_percpu(net->core.prot_inuse);
- free_percpu(net->core.sock_inuse);
}
static struct pernet_operations net_inuse_ops = {