}
 EXPORT_SYMBOL(build_ehash_secret);
 
-static inline int inet_netns_ok(struct net *net, __u8 protocol)
-{
-       const struct net_protocol *ipprot;
-
-       if (net_eq(net, &init_net))
-               return 1;
-
-       ipprot = rcu_dereference(inet_protos[protocol]);
-       if (ipprot == NULL) {
-               /* raw IP is OK */
-               return 1;
-       }
-       return ipprot->netns_ok;
-}
-
 /*
  *     Create an inet socket.
  */
            !ns_capable(net->user_ns, CAP_NET_RAW))
                goto out_rcu_unlock;
 
-       err = -EAFNOSUPPORT;
-       if (!inet_netns_ok(net, protocol))
-               goto out_rcu_unlock;
-
        sock->ops = answer->ops;
        answer_prot = answer->prot;
        answer_no_check = answer->no_check;
 
                if (ipprot != NULL) {
                        int ret;
 
-                       if (!net_eq(net, &init_net) && !ipprot->netns_ok) {
-                               net_info_ratelimited("%s: proto %d isn't netns-ready\n",
-                                                    __func__, protocol);
-                               kfree_skb(skb);
-                               goto out;
-                       }
-
                        if (!ipprot->no_policy) {
                                if (!xfrm4_policy_check(NULL, XFRM_POLICY_IN, skb)) {
                                        kfree_skb(skb);
 
 
 int inet_add_protocol(const struct net_protocol *prot, unsigned char protocol)
 {
+       if (!prot->netns_ok) {
+               pr_err("Protocol %u is not namespace aware, cannot register.\n",
+                       protocol);
+               return -EINVAL;
+       }
+
        return !cmpxchg((const struct net_protocol **)&inet_protos[protocol],
                        NULL, prot) ? 0 : -1;
 }