cn_already_initialized = 0;
 
-       proc_net_remove(&init_net, "connector");
+       remove_proc_entry("connector", init_net.proc_net);
 
        cn_queue_free_dev(dev->cbdev);
        netlink_kernel_release(dev->nls);
 
 
        unregister_netdevice_notifier(&bpq_dev_notifier);
 
-       proc_net_remove(&init_net, "bpqether");
+       remove_proc_entry("bpqether", init_net.proc_net);
 
        rtnl_lock();
        while (!list_empty(&bpq_devices)) {
 
        if (Vector_Latch)
                release_region(Vector_Latch, 1);
 
-       proc_net_remove(&init_net, "z8530drv");
+       remove_proc_entry("z8530drv", init_net.proc_net);
 }
 
 MODULE_AUTHOR("Joerg Reuter <jreuter@yaina.de>");
 
                kfree(p);
        }
 
-       proc_net_remove(&init_net, "yam");
+       remove_proc_entry("yam", init_net.proc_net);
 }
 
 /* --------------------------------------------------------------------- */
 
 
 static __net_exit void pppoe_exit_net(struct net *net)
 {
-       proc_net_remove(net, "pppoe");
+       remove_proc_entry("pppoe", net->proc_net);
 }
 
 static struct pernet_operations pppoe_net_ops = {
 
                remove_proc_entry(name_conf, vn->proc_vlan_dir);
 
        if (vn->proc_vlan_dir)
-               proc_net_remove(net, name_root);
+               remove_proc_entry(name_root, net->proc_net);
 
        /* Dynamically added entries should be cleaned up as their vlan_device
         * is removed, so we should not have to take care of it here...
 
                if (e->dirent)
                        remove_proc_entry(e->name, atm_proc_root);
        }
-       proc_net_remove(&init_net, "atm");
+       remove_proc_entry("atm", init_net.proc_net);
 }
 
 int __init atm_proc_init(void)
 
 
 static void __exit ax25_exit(void)
 {
-       proc_net_remove(&init_net, "ax25_route");
-       proc_net_remove(&init_net, "ax25");
-       proc_net_remove(&init_net, "ax25_calls");
+       remove_proc_entry("ax25_route", init_net.proc_net);
+       remove_proc_entry("ax25", init_net.proc_net);
+       remove_proc_entry("ax25_calls", init_net.proc_net);
 
        unregister_netdevice_notifier(&ax25_dev_notifier);
 
 
 
 void bt_procfs_cleanup(struct net *net, const char *name)
 {
-       proc_net_remove(net, name);
+       remove_proc_entry(name, net->proc_net);
 }
 #else
 int bt_procfs_init(struct module* module, struct net *net, const char *name,
 
        can_proto_unregister(&bcm_can_proto);
 
        if (proc_dir)
-               proc_net_remove(&init_net, "can-bcm");
+               remove_proc_entry("can-bcm", init_net.proc_net);
 }
 
 module_init(bcm_module_init);
 
                can_remove_proc_readentry(CAN_PROC_RCVLIST_SFF);
 
        if (can_dir)
-               proc_net_remove(&init_net, "can");
+               remove_proc_entry("can", init_net.proc_net);
 }
 
 out:
        return rc;
 out_ptype:
-       proc_net_remove(net, "ptype");
+       remove_proc_entry("ptype", net->proc_net);
 out_softnet:
-       proc_net_remove(net, "softnet_stat");
+       remove_proc_entry("softnet_stat", net->proc_net);
 out_dev:
-       proc_net_remove(net, "dev");
+       remove_proc_entry("dev", net->proc_net);
        goto out;
 }
 
 {
        wext_proc_exit(net);
 
-       proc_net_remove(net, "ptype");
-       proc_net_remove(net, "softnet_stat");
-       proc_net_remove(net, "dev");
+       remove_proc_entry("ptype", net->proc_net);
+       remove_proc_entry("softnet_stat", net->proc_net);
+       remove_proc_entry("dev", net->proc_net);
 }
 
 static struct pernet_operations __net_initdata dev_proc_ops = {
 
 
 static void __net_exit dev_mc_net_exit(struct net *net)
 {
-       proc_net_remove(net, "dev_mcast");
+       remove_proc_entry("dev_mcast", net->proc_net);
 }
 
 static struct pernet_operations __net_initdata dev_mc_net_ops = {
 
 remove_entry:
        remove_proc_entry(PGCTRL, pn->proc_dir);
 remove:
-       proc_net_remove(pn->net, PG_PROC_DIR);
+       remove_proc_entry(PG_PROC_DIR, pn->net->proc_net);
        return ret;
 }
 
        }
 
        remove_proc_entry(PGCTRL, pn->proc_dir);
-       proc_net_remove(pn->net, PG_PROC_DIR);
+       remove_proc_entry(PG_PROC_DIR, pn->net->proc_net);
 }
 
 static struct pernet_operations pg_net_ops = {
 
 
 static __net_exit void proto_exit_net(struct net *net)
 {
-       proc_net_remove(net, "protocols");
+       remove_proc_entry("protocols", net->proc_net);
 }
 
 
 
        pr_info("DCCP watch registered (port=%d)\n", port);
        return 0;
 err1:
-       proc_net_remove(&init_net, procname);
+       remove_proc_entry(procname, init_net.proc_net);
 err0:
        kfifo_free(&dccpw.fifo);
        return ret;
 static __exit void dccpprobe_exit(void)
 {
        kfifo_free(&dccpw.fifo);
-       proc_net_remove(&init_net, procname);
+       remove_proc_entry(procname, init_net.proc_net);
        unregister_jprobe(&dccp_send_probe);
 
 }
 
        dn_neigh_cleanup();
        dn_fib_cleanup();
 
-       proc_net_remove(&init_net, "decnet");
+       remove_proc_entry("decnet", init_net.proc_net);
 
        proto_unregister(&dn_proto);
 
 
        }
 #endif /* CONFIG_SYSCTL */
 
-       proc_net_remove(&init_net, "decnet_dev");
+       remove_proc_entry("decnet_dev", init_net.proc_net);
 
        dn_dev_devices_off();
 }
 
 
 void __exit dn_neigh_cleanup(void)
 {
-       proc_net_remove(&init_net, "decnet_neigh");
+       remove_proc_entry("decnet_neigh", init_net.proc_net);
        neigh_table_clear(&dn_neigh_table);
 }
 
        del_timer(&dn_route_timer);
        dn_run_flush(0);
 
-       proc_net_remove(&init_net, "decnet_cache");
+       remove_proc_entry("decnet_cache", init_net.proc_net);
        dst_entries_destroy(&dn_dst_ops);
 }
 
 
 
 static void __net_exit arp_net_exit(struct net *net)
 {
-       proc_net_remove(net, "arp");
+       remove_proc_entry("arp", net->proc_net);
 }
 
 static struct pernet_operations arp_net_ops = {
 
        return 0;
 
 out3:
-       proc_net_remove(net, "fib_triestat");
+       remove_proc_entry("fib_triestat", net->proc_net);
 out2:
-       proc_net_remove(net, "fib_trie");
+       remove_proc_entry("fib_trie", net->proc_net);
 out1:
        return -ENOMEM;
 }
 
 void __net_exit fib_proc_exit(struct net *net)
 {
-       proc_net_remove(net, "fib_trie");
-       proc_net_remove(net, "fib_triestat");
-       proc_net_remove(net, "route");
+       remove_proc_entry("fib_trie", net->proc_net);
+       remove_proc_entry("fib_triestat", net->proc_net);
+       remove_proc_entry("route", net->proc_net);
 }
 
 #endif /* CONFIG_PROC_FS */
 
        return 0;
 
 out_mcfilter:
-       proc_net_remove(net, "igmp");
+       remove_proc_entry("igmp", net->proc_net);
 out_igmp:
        return -ENOMEM;
 }
 
 static void __net_exit igmp_net_exit(struct net *net)
 {
-       proc_net_remove(net, "mcfilter");
-       proc_net_remove(net, "igmp");
+       remove_proc_entry("mcfilter", net->proc_net);
+       remove_proc_entry("igmp", net->proc_net);
 }
 
 static struct pernet_operations igmp_net_ops = {
 
 
 #ifdef CONFIG_PROC_FS
 proc_cache_fail:
-       proc_net_remove(net, "ip_mr_vif");
+       remove_proc_entry("ip_mr_vif", net->proc_net);
 proc_vif_fail:
        ipmr_rules_exit(net);
 #endif
 static void __net_exit ipmr_net_exit(struct net *net)
 {
 #ifdef CONFIG_PROC_FS
-       proc_net_remove(net, "ip_mr_cache");
-       proc_net_remove(net, "ip_mr_vif");
+       remove_proc_entry("ip_mr_cache", net->proc_net);
+       remove_proc_entry("ip_mr_vif", net->proc_net);
 #endif
        ipmr_rules_exit(net);
 }
 
        return 0;
 
 err3:
-       proc_net_remove(net, "ip_conntrack_expect");
+       remove_proc_entry("ip_conntrack_expect", net->proc_net);
 err2:
-       proc_net_remove(net, "ip_conntrack");
+       remove_proc_entry("ip_conntrack", net->proc_net);
 err1:
        return -ENOMEM;
 }
 static void __net_exit ip_conntrack_net_exit(struct net *net)
 {
        remove_proc_entry("ip_conntrack", net->proc_net_stat);
-       proc_net_remove(net, "ip_conntrack_expect");
-       proc_net_remove(net, "ip_conntrack");
+       remove_proc_entry("ip_conntrack_expect", net->proc_net);
+       remove_proc_entry("ip_conntrack", net->proc_net);
 }
 
 static struct pernet_operations ip_conntrack_net_ops = {
 
 
 static void ping_proc_unregister(struct net *net)
 {
-       proc_net_remove(net, "icmp");
+       remove_proc_entry("icmp", net->proc_net);
 }
 
 
 
        return 0;
 
 out_snmp:
-       proc_net_remove(net, "netstat");
+       remove_proc_entry("netstat", net->proc_net);
 out_netstat:
-       proc_net_remove(net, "sockstat");
+       remove_proc_entry("sockstat", net->proc_net);
 out_sockstat:
        return -ENOMEM;
 }
 
 static __net_exit void ip_proc_exit_net(struct net *net)
 {
-       proc_net_remove(net, "snmp");
-       proc_net_remove(net, "netstat");
-       proc_net_remove(net, "sockstat");
+       remove_proc_entry("snmp", net->proc_net);
+       remove_proc_entry("netstat", net->proc_net);
+       remove_proc_entry("sockstat", net->proc_net);
 }
 
 static __net_initdata struct pernet_operations ip_proc_ops = {
 
 
 static __net_exit void raw_exit_net(struct net *net)
 {
-       proc_net_remove(net, "raw");
+       remove_proc_entry("raw", net->proc_net);
 }
 
 static __net_initdata struct pernet_operations raw_net_ops = {
 
 
 void tcp_proc_unregister(struct net *net, struct tcp_seq_afinfo *afinfo)
 {
-       proc_net_remove(net, afinfo->name);
+       remove_proc_entry(afinfo->name, net->proc_net);
 }
 EXPORT_SYMBOL(tcp_proc_unregister);
 
 
        pr_info("probe registered (port=%d) bufsize=%u\n", port, bufsize);
        return 0;
  err1:
-       proc_net_remove(&init_net, procname);
+       remove_proc_entry(procname, init_net.proc_net);
  err0:
        kfree(tcp_probe.log);
        return ret;
 
 static __exit void tcpprobe_exit(void)
 {
-       proc_net_remove(&init_net, procname);
+       remove_proc_entry(procname, init_net.proc_net);
        unregister_jprobe(&tcp_jprobe);
        kfree(tcp_probe.log);
 }
 
 
 void udp_proc_unregister(struct net *net, struct udp_seq_afinfo *afinfo)
 {
-       proc_net_remove(net, afinfo->name);
+       remove_proc_entry(afinfo->name, net->proc_net);
 }
 EXPORT_SYMBOL(udp_proc_unregister);
 
 
 
 static void __net_exit if6_proc_net_exit(struct net *net)
 {
-       proc_net_remove(net, "if_inet6");
+       remove_proc_entry("if_inet6", net->proc_net);
 }
 
 static struct pernet_operations if6_proc_net_ops = {
 
 
 void ac6_proc_exit(struct net *net)
 {
-       proc_net_remove(net, "anycast6");
+       remove_proc_entry("anycast6", net->proc_net);
 }
 #endif
 
 
 
 static void __net_exit ip6_flowlabel_proc_fini(struct net *net)
 {
-       proc_net_remove(net, "ip6_flowlabel");
+       remove_proc_entry("ip6_flowlabel", net->proc_net);
 }
 #else
 static inline int ip6_flowlabel_proc_init(struct net *net)
 
 
 #ifdef CONFIG_PROC_FS
 proc_cache_fail:
-       proc_net_remove(net, "ip6_mr_vif");
+       remove_proc_entry("ip6_mr_vif", net->proc_net);
 proc_vif_fail:
        ip6mr_rules_exit(net);
 #endif
 static void __net_exit ip6mr_net_exit(struct net *net)
 {
 #ifdef CONFIG_PROC_FS
-       proc_net_remove(net, "ip6_mr_cache");
-       proc_net_remove(net, "ip6_mr_vif");
+       remove_proc_entry("ip6_mr_cache", net->proc_net);
+       remove_proc_entry("ip6_mr_vif", net->proc_net);
 #endif
        ip6mr_rules_exit(net);
 }
 
        return err;
 
 out_proc_net_igmp6:
-       proc_net_remove(net, "igmp6");
+       remove_proc_entry("igmp6", net->proc_net);
        goto out;
 }
 
 static void __net_exit igmp6_proc_exit(struct net *net)
 {
-       proc_net_remove(net, "mcfilter6");
-       proc_net_remove(net, "igmp6");
+       remove_proc_entry("mcfilter6", net->proc_net);
+       remove_proc_entry("igmp6", net->proc_net);
 }
 #else
 static inline int igmp6_proc_init(struct net *net)
 
        return 0;
 
 proc_dev_snmp6_fail:
-       proc_net_remove(net, "snmp6");
+       remove_proc_entry("snmp6", net->proc_net);
 proc_snmp6_fail:
-       proc_net_remove(net, "sockstat6");
+       remove_proc_entry("sockstat6", net->proc_net);
        return -ENOMEM;
 }
 
 static void __net_exit ipv6_proc_exit_net(struct net *net)
 {
-       proc_net_remove(net, "sockstat6");
-       proc_net_remove(net, "dev_snmp6");
-       proc_net_remove(net, "snmp6");
+       remove_proc_entry("sockstat6", net->proc_net);
+       remove_proc_entry("dev_snmp6", net->proc_net);
+       remove_proc_entry("snmp6", net->proc_net);
 }
 
 static struct pernet_operations ipv6_proc_ops = {
 
 
 static void __net_exit raw6_exit_net(struct net *net)
 {
-       proc_net_remove(net, "raw6");
+       remove_proc_entry("raw6", net->proc_net);
 }
 
 static struct pernet_operations raw6_net_ops = {
 
 static void __net_exit ip6_route_net_exit_late(struct net *net)
 {
 #ifdef CONFIG_PROC_FS
-       proc_net_remove(net, "ipv6_route");
-       proc_net_remove(net, "rt6_stats");
+       remove_proc_entry("ipv6_route", net->proc_net);
+       remove_proc_entry("rt6_stats", net->proc_net);
 #endif
 }
 
 
 
 static void __net_exit pfkey_exit_proc(struct net *net)
 {
-       proc_net_remove(net, "pfkey");
+       remove_proc_entry("pfkey", net->proc_net);
 }
 #else
 static inline int pfkey_init_proc(struct net *net)
 
 
 static __net_exit void pppol2tp_exit_net(struct net *net)
 {
-       proc_net_remove(net, "pppol2tp");
+       remove_proc_entry("pppol2tp", net->proc_net);
 }
 
 static struct pernet_operations pppol2tp_net_ops = {
 
 void __net_exit ip_vs_app_net_cleanup(struct net *net)
 {
        unregister_ip_vs_app(net, NULL /* all */);
-       proc_net_remove(net, "ip_vs_app");
+       remove_proc_entry("ip_vs_app", net->proc_net);
 }
 
 {
        /* flush all the connection entries first */
        ip_vs_conn_flush(net);
-       proc_net_remove(net, "ip_vs_conn");
-       proc_net_remove(net, "ip_vs_conn_sync");
+       remove_proc_entry("ip_vs_conn", net->proc_net);
+       remove_proc_entry("ip_vs_conn_sync", net->proc_net);
 }
 
 int __init ip_vs_conn_init(void)
 
        ip_vs_trash_cleanup(net);
        ip_vs_stop_estimator(net, &ipvs->tot_stats);
        ip_vs_control_net_cleanup_sysctl(net);
-       proc_net_remove(net, "ip_vs_stats_percpu");
-       proc_net_remove(net, "ip_vs_stats");
-       proc_net_remove(net, "ip_vs");
+       remove_proc_entry("ip_vs_stats_percpu", net->proc_net);
+       remove_proc_entry("ip_vs_stats", net->proc_net);
+       remove_proc_entry("ip_vs", net->proc_net);
        free_percpu(ipvs->tot_stats.cpustats);
 }
 
 
 static void exp_proc_remove(struct net *net)
 {
 #ifdef CONFIG_NF_CONNTRACK_PROCFS
-       proc_net_remove(net, "nf_conntrack_expect");
+       remove_proc_entry("nf_conntrack_expect", net->proc_net);
 #endif /* CONFIG_NF_CONNTRACK_PROCFS */
 }
 
 
        return 0;
 
 out_stat_nf_conntrack:
-       proc_net_remove(net, "nf_conntrack");
+       remove_proc_entry("nf_conntrack", net->proc_net);
 out_nf_conntrack:
        return -ENOMEM;
 }
 static void nf_conntrack_standalone_fini_proc(struct net *net)
 {
        remove_proc_entry("nf_conntrack", net->proc_net_stat);
-       proc_net_remove(net, "nf_conntrack");
+       remove_proc_entry("nf_conntrack", net->proc_net);
 }
 #else
 static int nf_conntrack_standalone_init_proc(struct net *net)
 
 out_remove_matches:
        strlcpy(buf, xt_prefix[af], sizeof(buf));
        strlcat(buf, FORMAT_MATCHES, sizeof(buf));
-       proc_net_remove(net, buf);
+       remove_proc_entry(buf, net->proc_net);
 
 out_remove_tables:
        strlcpy(buf, xt_prefix[af], sizeof(buf));
        strlcat(buf, FORMAT_TABLES, sizeof(buf));
-       proc_net_remove(net, buf);
+       remove_proc_entry(buf, net->proc_net);
 out:
        return -1;
 #endif
 
        strlcpy(buf, xt_prefix[af], sizeof(buf));
        strlcat(buf, FORMAT_TABLES, sizeof(buf));
-       proc_net_remove(net, buf);
+       remove_proc_entry(buf, net->proc_net);
 
        strlcpy(buf, xt_prefix[af], sizeof(buf));
        strlcat(buf, FORMAT_TARGETS, sizeof(buf));
-       proc_net_remove(net, buf);
+       remove_proc_entry(buf, net->proc_net);
 
        strlcpy(buf, xt_prefix[af], sizeof(buf));
        strlcat(buf, FORMAT_MATCHES, sizeof(buf));
-       proc_net_remove(net, buf);
+       remove_proc_entry(buf, net->proc_net);
 #endif /*CONFIG_PROC_FS*/
 }
 EXPORT_SYMBOL_GPL(xt_proto_fini);
 
 #if IS_ENABLED(CONFIG_IP6_NF_IPTABLES)
        hashlimit_net->ip6t_hashlimit = proc_mkdir("ip6t_hashlimit", net->proc_net);
        if (!hashlimit_net->ip6t_hashlimit) {
-               proc_net_remove(net, "ipt_hashlimit");
+               remove_proc_entry("ipt_hashlimit", net->proc_net);
                return -ENOMEM;
        }
 #endif
        hashlimit_net->ip6t_hashlimit = NULL;
        mutex_unlock(&hashlimit_mutex);
 
-       proc_net_remove(net, "ipt_hashlimit");
+       remove_proc_entry("ipt_hashlimit", net->proc_net);
 #if IS_ENABLED(CONFIG_IP6_NF_IPTABLES)
-       proc_net_remove(net, "ip6t_hashlimit");
+       remove_proc_entry("ip6t_hashlimit", net->proc_net);
 #endif
 }
 
 
        recent_net->xt_recent = NULL;
        spin_unlock_bh(&recent_lock);
 
-       proc_net_remove(net, "xt_recent");
+       remove_proc_entry("xt_recent", net->proc_net);
 }
 #else
 static inline int recent_proc_net_init(struct net *net)
 
 static void __net_exit netlink_net_exit(struct net *net)
 {
 #ifdef CONFIG_PROC_FS
-       proc_net_remove(net, "netlink");
+       remove_proc_entry("netlink", net->proc_net);
 #endif
 }
 
 
 {
        int i;
 
-       proc_net_remove(&init_net, "nr");
-       proc_net_remove(&init_net, "nr_neigh");
-       proc_net_remove(&init_net, "nr_nodes");
+       remove_proc_entry("nr", init_net.proc_net);
+       remove_proc_entry("nr_neigh", init_net.proc_net);
+       remove_proc_entry("nr_nodes", init_net.proc_net);
        nr_loopback_clear();
 
        nr_rt_free();
 
 
 static void __net_exit packet_net_exit(struct net *net)
 {
-       proc_net_remove(net, "packet");
+       remove_proc_entry("packet", net->proc_net);
 }
 
 static struct pernet_operations packet_net_ops = {
 
 
 static void __net_exit phonet_exit_net(struct net *net)
 {
-       proc_net_remove(net, "phonet");
+       remove_proc_entry("phonet", net->proc_net);
 }
 
 static struct pernet_operations phonet_net_ops = {
        rtnl_unregister_all(PF_PHONET);
        unregister_netdevice_notifier(&phonet_device_notifier);
        unregister_pernet_subsys(&phonet_net_ops);
-       proc_net_remove(&init_net, "pnresource");
+       remove_proc_entry("pnresource", init_net.proc_net);
 }
 
 int phonet_route_add(struct net_device *dev, u8 daddr)
 
 {
        int i;
 
-       proc_net_remove(&init_net, "rose");
-       proc_net_remove(&init_net, "rose_neigh");
-       proc_net_remove(&init_net, "rose_nodes");
-       proc_net_remove(&init_net, "rose_routes");
+       remove_proc_entry("rose", init_net.proc_net);
+       remove_proc_entry("rose_neigh", init_net.proc_net);
+       remove_proc_entry("rose_nodes", init_net.proc_net);
+       remove_proc_entry("rose_routes", init_net.proc_net);
        rose_loopback_clear();
 
        rose_rt_free();
 
 
        _debug("flush scheduled work");
        flush_workqueue(rxrpc_workqueue);
-       proc_net_remove(&init_net, "rxrpc_conns");
-       proc_net_remove(&init_net, "rxrpc_calls");
+       remove_proc_entry("rxrpc_conns", init_net.proc_net);
+       remove_proc_entry("rxrpc_calls", init_net.proc_net);
        destroy_workqueue(rxrpc_workqueue);
        kmem_cache_destroy(rxrpc_call_jar);
        _leave("");
 
 
 static void __net_exit psched_net_exit(struct net *net)
 {
-       proc_net_remove(net, "psched");
+       remove_proc_entry("psched", net->proc_net);
 }
 #else
 static int __net_init psched_net_init(struct net *net)
 
        return 0;
 
 remove_proc:
-       proc_net_remove(&init_net, procname);
+       remove_proc_entry(procname, init_net.proc_net);
 free_kfifo:
        kfifo_free(&sctpw.fifo);
        return ret;
 static __exit void sctpprobe_exit(void)
 {
        kfifo_free(&sctpw.fifo);
-       proc_net_remove(&init_net, procname);
+       remove_proc_entry(procname, init_net.proc_net);
        unregister_jprobe(&sctp_recv_probe);
 }
 
 
 static void __net_exit unix_net_exit(struct net *net)
 {
        unix_sysctl_unregister(net);
-       proc_net_remove(net, "unix");
+       remove_proc_entry("unix", net->proc_net);
 }
 
 static struct pernet_operations unix_net_ops = {
 
 
 void __net_exit wext_proc_exit(struct net *net)
 {
-       proc_net_remove(net, "wireless");
+       remove_proc_entry("wireless", net->proc_net);
 }
 
 
 void xfrm_proc_fini(struct net *net)
 {
-       proc_net_remove(net, "xfrm_stat");
+       remove_proc_entry("xfrm_stat", net->proc_net);
 }