#if defined(CONFIG_MEMCG_KMEM) && defined(CONFIG_NET)
 extern struct static_key memcg_socket_limit_enabled;
-static inline struct cg_proto *parent_cg_proto(struct proto *proto,
-                                              struct cg_proto *cg_proto)
-{
-       return proto->proto_cgroup(parent_mem_cgroup(cg_proto->memcg));
-}
 #define mem_cgroup_sockets_enabled static_key_false(&memcg_socket_limit_enabled)
 #else
 #define mem_cgroup_sockets_enabled 0
-static inline struct cg_proto *parent_cg_proto(struct proto *proto,
-                                              struct cg_proto *cg_proto)
-{
-       return NULL;
-}
 #endif
 
 static inline bool sk_stream_memory_free(const struct sock *sk)
 
 static inline void sk_sockets_allocated_dec(struct sock *sk)
 {
-       struct proto *prot = sk->sk_prot;
-
-       if (mem_cgroup_sockets_enabled && sk->sk_cgrp) {
-               struct cg_proto *cg_proto = sk->sk_cgrp;
-
-               for (; cg_proto; cg_proto = parent_cg_proto(prot, cg_proto))
-                       percpu_counter_dec(&cg_proto->sockets_allocated);
-       }
-
-       percpu_counter_dec(prot->sockets_allocated);
+       percpu_counter_dec(sk->sk_prot->sockets_allocated);
 }
 
 static inline void sk_sockets_allocated_inc(struct sock *sk)
 {
-       struct proto *prot = sk->sk_prot;
-
-       if (mem_cgroup_sockets_enabled && sk->sk_cgrp) {
-               struct cg_proto *cg_proto = sk->sk_cgrp;
-
-               for (; cg_proto; cg_proto = parent_cg_proto(prot, cg_proto))
-                       percpu_counter_inc(&cg_proto->sockets_allocated);
-       }
-
-       percpu_counter_inc(prot->sockets_allocated);
+       percpu_counter_inc(sk->sk_prot->sockets_allocated);
 }
 
 static inline int
 sk_sockets_allocated_read_positive(struct sock *sk)
 {
-       struct proto *prot = sk->sk_prot;
-
-       if (mem_cgroup_sockets_enabled && sk->sk_cgrp)
-               return percpu_counter_read_positive(&sk->sk_cgrp->sockets_allocated);
-
-       return percpu_counter_read_positive(prot->sockets_allocated);
+       return percpu_counter_read_positive(sk->sk_prot->sockets_allocated);
 }
 
 static inline int
 
                counter_parent = &parent_cg->memory_allocated;
 
        page_counter_init(&cg_proto->memory_allocated, counter_parent);
-       percpu_counter_init(&cg_proto->sockets_allocated, 0, GFP_KERNEL);
 
        return 0;
 }
        if (!cg_proto)
                return;
 
-       percpu_counter_destroy(&cg_proto->sockets_allocated);
-
        if (cg_proto->active)
                static_key_slow_dec(&memcg_socket_limit_enabled);