isa_membase = membase;
        isa_portbase = portbase;
        isa_portshift = portshift;
-       isa_sysctl_header = register_sysctl_table(ctl_bus, 0);
+       isa_sysctl_header = register_sysctl_table(ctl_bus);
 }
 
  */
 static int __init pm_init(void)
 {
-       register_sysctl_table(pm_dir_table, 0);
+       register_sysctl_table(pm_dir_table);
        return 0;
 }
 
 
  */
 static int __init frv_sysctl_init(void)
 {
-       register_sysctl_table(frv_dir_table, 0);
+       register_sysctl_table(frv_dir_table);
        return 0;
 }
 
 
        if((ret = register_die_notifier(&kdump_init_notifier_nb)) != 0)
                return ret;
 #ifdef CONFIG_SYSCTL
-       register_sysctl_table(sys_table, 0);
+       register_sysctl_table(sys_table);
 #endif
        return 0;
 }
 
        /*
         * create /proc/sys/kernel/perfmon (for debugging purposes)
         */
-       pfm_sysctl_header = register_sysctl_table(pfm_sysctl_root, 0);
+       pfm_sysctl_header = register_sysctl_table(pfm_sysctl_root);
 
        /*
         * initialize all our spinlocks
 
        snprintf(xpc_part->bus_id, BUS_ID_SIZE, "part");
        snprintf(xpc_chan->bus_id, BUS_ID_SIZE, "chan");
 
-       xpc_sysctl = register_sysctl_table(xpc_sys_dir, 0);
+       xpc_sysctl = register_sysctl_table(xpc_sys_dir);
 
        /*
         * The first few fields of each entry of xpc_partitions[] need to
 
  */
 static int __init pm_init(void)
 {
-       register_sysctl_table(pm_dir_table, 0);
+       register_sysctl_table(pm_dir_table);
        return 0;
 }
 
 
        struct ctl_table_header *lasat_table_header;
 
        lasat_table_header =
-               register_sysctl_table(lasat_root_table, 0);
+               register_sysctl_table(lasat_root_table);
 
        return 0;
 }
 
 static int __init
 register_powersave_nap_sysctl(void)
 {
-       register_sysctl_table(powersave_nap_sysctl_root, 0);
+       register_sysctl_table(powersave_nap_sysctl_root);
 
        return 0;
 }
 
 static int __init
 register_ppc_htab_sysctl(void)
 {
-       register_sysctl_table(htab_sysctl_root, 0);
+       register_sysctl_table(htab_sysctl_root);
 
        return 0;
 }
 
 
        ops->ctl_table[3].ctl_name = 0;
 
-       ops->sysctl_header = register_sysctl_table(ops->ctl_table,0);
+       ops->sysctl_header = register_sysctl_table(ops->ctl_table);
 
        P_INFO("%s-ops registered!\n", ops->name);
        return 0;
        /* Register cpu hotplug notifier */
        register_hotcpu_notifier(&appldata_nb);
 
-       appldata_sysctl_header = register_sysctl_table(appldata_dir_table, 0);
+       appldata_sysctl_header = register_sysctl_table(appldata_dir_table);
 #ifdef MODULE
        appldata_dir_table[0].de->owner = THIS_MODULE;
        appldata_table[0].de->owner = THIS_MODULE;
 
 {
        int rc = 0;
 
-       s390dbf_sysctl_header = register_sysctl_table(s390dbf_dir_table, 0);
+       s390dbf_sysctl_header = register_sysctl_table(s390dbf_dir_table);
        down(&debug_lock);
        debug_debugfs_root_entry = debugfs_create_dir(DEBUG_DIR_ROOT,NULL);
        printk(KERN_INFO "debug: Initialization complete\n");
 
        int rc = -ENOMEM;
 
 #ifdef CONFIG_CMM_PROC
-       cmm_sysctl_header = register_sysctl_table(cmm_dir_table, 0);
+       cmm_sysctl_header = register_sysctl_table(cmm_dir_table);
        if (!cmm_sysctl_header)
                goto out;
 #endif
 
 static struct ctl_table_header *sysctl_header;
 static int __init init_sysctl(void)
 {
-       sysctl_header = register_sysctl_table(sh64_root, 0);
+       sysctl_header = register_sysctl_table(sh64_root);
        return 0;
 }
 
 
 
 static __init int ia32_binfmt_init(void)
 { 
-       register_sysctl_table(abi_root_table2, 0);
+       register_sysctl_table(abi_root_table2);
        return 0;
 }
 __initcall(ia32_binfmt_init);
 
        BUG_ON((unsigned long) &vgetcpu != VSYSCALL_ADDR(__NR_vgetcpu));
        map_vsyscall();
 #ifdef CONFIG_SYSCTL
-       register_sysctl_table(kernel_root_table2, 0);
+       register_sysctl_table(kernel_root_table2);
 #endif
        on_each_cpu(cpu_vsyscall_init, NULL, 0, 1);
        hotcpu_notifier(cpu_vsyscall_notifier, 0);
 
 
 static __init int x8664_sysctl_init(void)
 { 
-       register_sysctl_table(debug_root_table2, 0);
+       register_sysctl_table(debug_root_table2);
        return 0;
 }
 __initcall(x8664_sysctl_init);
 
        if (initialized == 1)
                return;
 
-       cdrom_sysctl_header = register_sysctl_table(cdrom_root_table, 0);
+       cdrom_sysctl_header = register_sysctl_table(cdrom_root_table);
 
        /* set the defaults */
        cdrom_sysctl_settings.autoclose = autoclose;
 
        if (result < 0)
                return -ENODEV;
 
-       sysctl_header = register_sysctl_table(dev_root, 0);
+       sysctl_header = register_sysctl_table(dev_root);
 
        result = acpi_bus_register_driver(&hpet_acpi_driver);
        if (result < 0) {
 
                printk(KERN_INFO PFX "Power cycle is enabled.\n");
 
 #ifdef CONFIG_PROC_FS
-       ipmi_table_header = register_sysctl_table(ipmi_root_table, 0);
+       ipmi_table_header = register_sysctl_table(ipmi_root_table);
        if (!ipmi_table_header) {
                printk(KERN_ERR PFX "Unable to register powercycle sysctl\n");
                rv = -ENOMEM;
 
 
 static int __init init_sysctl(void)
 {
-    sysctl_header = register_sysctl_table(dev_root, 0);
+    sysctl_header = register_sysctl_table(dev_root);
     return 0;
 }
 
 
                return err;
 
 #if defined(CONFIG_SYSCTL)
-       mac_hid_sysctl_header = register_sysctl_table(mac_hid_root_dir, 0);
+       mac_hid_sysctl_header = register_sysctl_table(mac_hid_root_dir);
 #endif /* CONFIG_SYSCTL */
 
        return 0;
 
                            md_probe, NULL, NULL);
 
        register_reboot_notifier(&md_notifier);
-       raid_table_header = register_sysctl_table(raid_root_table, 0);
+       raid_table_header = register_sysctl_table(raid_root_table);
 
        md_geninit();
        return (0);
 
                return 0;
        for (i = 0; i < MAX_ARLANS && arlan_device[i]; i++)
                arlan_table[i].ctl_name = i + 1;
-       arlan_device_sysctl_header = register_sysctl_table(arlan_root_table, 0);
+       arlan_device_sysctl_header = register_sysctl_table(arlan_root_table);
        if (!arlan_device_sysctl_header)
                return -1;
 
 
        t->parport_dir[0].child = t->port_dir;
        t->dev_dir[0].child = t->parport_dir;
 
-       t->sysctl_header = register_sysctl_table(t->dev_dir, 0);
+       t->sysctl_header = register_sysctl_table(t->dev_dir);
        if (t->sysctl_header == NULL) {
                kfree(t);
                t = NULL;
        t->device_dir[0].child = t->vars;
        t->vars[0].data = &device->timeslice;
 
-       t->sysctl_header = register_sysctl_table(t->dev_dir, 0);
+       t->sysctl_header = register_sysctl_table(t->dev_dir);
        if (t->sysctl_header == NULL) {
                kfree(t);
                t = NULL;
 static int __init parport_default_proc_register(void)
 {
        parport_default_sysctl_table.sysctl_header =
-               register_sysctl_table(parport_default_sysctl_table.dev_dir, 0);
+               register_sysctl_table(parport_default_sysctl_table.dev_dir);
        return 0;
 }
 
 
 
 int __init scsi_init_sysctl(void)
 {
-       scsi_table_header = register_sysctl_table(scsi_root_table, 0);
+       scsi_table_header = register_sysctl_table(scsi_root_table);
        if (!scsi_table_header)
                return -ENOMEM;
        return 0;
 
 
 #ifdef CONFIG_SYSCTL
        if ( !fs_table_header )
-               fs_table_header = register_sysctl_table(fs_table, 0);
+               fs_table_header = register_sysctl_table(fs_table);
 #endif 
 }
 
 
 
        printk(KERN_NOTICE "VFS: Disk quotas %s\n", __DQUOT_VERSION__);
 
-       register_sysctl_table(sys_table, 0);
+       register_sysctl_table(sys_table);
 
        dquot_cachep = kmem_cache_create("dquot", 
                        sizeof(struct dquot), sizeof(unsigned long) * 4,
 
 
 static int __init init_nlm(void)
 {
-       nlm_sysctl_table = register_sysctl_table(nlm_sysctl_root, 0);
+       nlm_sysctl_table = register_sysctl_table(nlm_sysctl_root);
        return nlm_sysctl_table ? 0 : -ENOMEM;
 }
 
 
 
 int nfs_register_sysctl(void)
 {
-       nfs_callback_sysctl_table = register_sysctl_table(nfs_cb_sysctl_root, 0);
+       nfs_callback_sysctl_table = register_sysctl_table(nfs_cb_sysctl_root);
        if (nfs_callback_sysctl_table == NULL)
                return -ENOMEM;
        return 0;
 
 {
        if (add) {
                BUG_ON(sysctls_root_table);
-               sysctls_root_table = register_sysctl_table(sysctls_root, 0);
+               sysctls_root_table = register_sysctl_table(sysctls_root);
                if (!sysctls_root_table)
                        return -ENOMEM;
 #ifdef CONFIG_PROC_FS
 
        o2hb_init();
        o2net_init();
 
-       ocfs2_table_header = register_sysctl_table(ocfs2_root_table, 0);
+       ocfs2_table_header = register_sysctl_table(ocfs2_root_table);
        if (!ocfs2_table_header) {
                printk(KERN_ERR "nodemanager: unable to register sysctl\n");
                ret = -ENOMEM; /* or something. */
 
 void
 xfs_sysctl_register(void)
 {
-       xfs_table_header = register_sysctl_table(xfs_root_table, 0);
+       xfs_table_header = register_sysctl_table(xfs_root_table);
 }
 
 void
 
        struct completion *unregistering;
 };
 
-struct ctl_table_header * register_sysctl_table(ctl_table * table, 
-                                               int insert_at_head);
+struct ctl_table_header * register_sysctl_table(ctl_table * table);
+
 void unregister_sysctl_table(struct ctl_table_header * table);
 
 #else /* __KERNEL__ */
 
 
 static int __init ipc_sysctl_init(void)
 {
-       register_sysctl_table(ipc_root_table, 0);
+       register_sysctl_table(ipc_root_table);
        return 0;
 }
 
 
                return -ENOMEM;
 
        /* ignore failues - they are not fatal */
-       mq_sysctl_table = register_sysctl_table(mq_sysctl_root, 0);
+       mq_sysctl_table = register_sysctl_table(mq_sysctl_root);
 
        error = register_filesystem(&mqueue_fs_type);
        if (error)
 
 /**
  * register_sysctl_table - register a sysctl hierarchy
  * @table: the top-level table structure
- * @insert_at_head: whether the entry should be inserted in front or at the end
  *
  * Register a sysctl table hierarchy. @table should be a filled in ctl_table
  * array. An entry with a ctl_name of 0 terminates the table. 
  * This routine returns %NULL on a failure to register, and a pointer
  * to the table header on success.
  */
-struct ctl_table_header *register_sysctl_table(ctl_table * table, 
-                                              int insert_at_head)
+struct ctl_table_header *register_sysctl_table(ctl_table * table)
 {
        struct ctl_table_header *tmp;
        tmp = kmalloc(sizeof(struct ctl_table_header), GFP_KERNEL);
        tmp->used = 0;
        tmp->unregistering = NULL;
        spin_lock(&sysctl_lock);
-       if (insert_at_head)
-               list_add(&tmp->ctl_entry, &root_table_header.ctl_entry);
-       else
-               list_add_tail(&tmp->ctl_entry, &root_table_header.ctl_entry);
+       list_add_tail(&tmp->ctl_entry, &root_table_header.ctl_entry);
        spin_unlock(&sysctl_lock);
 #ifdef CONFIG_PROC_SYSCTL
        register_proc_table(table, proc_sys_root, tmp);
 
 
 static int __init utsname_sysctl_init(void)
 {
-       register_sysctl_table(uts_root_table, 0);
+       register_sysctl_table(uts_root_table);
        return 0;
 }
 
 
 
 void atalk_register_sysctl(void)
 {
-       atalk_table_header = register_sysctl_table(atalk_root_table, 0);
+       atalk_table_header = register_sysctl_table(atalk_root_table);
 }
 
 void atalk_unregister_sysctl(void)
 
 
        ax25_dir_table[0].child = ax25_table;
 
-       ax25_table_header = register_sysctl_table(ax25_root_table, 0);
+       ax25_table_header = register_sysctl_table(ax25_root_table);
 }
 
 void ax25_unregister_sysctl(void)
 
        if (ret < 0)
                return ret;
 #ifdef CONFIG_SYSCTL
-       brnf_sysctl_header = register_sysctl_table(brnf_net_table, 0);
+       brnf_sysctl_header = register_sysctl_table(brnf_net_table);
        if (brnf_sysctl_header == NULL) {
                printk(KERN_WARNING
                       "br_netfilter: can't register to sysctl.\n");
 
        t->neigh_proto_dir[0].child    = t->neigh_neigh_dir;
        t->neigh_root_dir[0].child     = t->neigh_proto_dir;
 
-       t->sysctl_header = register_sysctl_table(t->neigh_root_dir, 0);
+       t->sysctl_header = register_sysctl_table(t->neigh_root_dir);
        if (!t->sysctl_header) {
                err = -ENOBUFS;
                goto free_procname;
 
 
 int __init dccp_sysctl_init(void)
 {
-       dccp_table_header = register_sysctl_table(dccp_root_table, 0);
+       dccp_table_header = register_sysctl_table(dccp_root_table);
 
        return dccp_table_header != NULL ? 0 : -ENOMEM;
 }
 
        t->dn_dev_root_dir[0].de = NULL;
        t->dn_dev_vars[0].extra1 = (void *)dev;
 
-       t->sysctl_header = register_sysctl_table(t->dn_dev_root_dir, 0);
+       t->sysctl_header = register_sysctl_table(t->dn_dev_root_dir);
        if (t->sysctl_header == NULL)
                kfree(t);
        else
 
 
 void dn_register_sysctl(void)
 {
-       dn_table_header = register_sysctl_table(dn_root_table, 0);
+       dn_table_header = register_sysctl_table(dn_root_table);
 }
 
 void dn_unregister_sysctl(void)
 
        t->devinet_root_dir[0].child  = t->devinet_proto_dir;
        t->devinet_root_dir[0].de     = NULL;
 
-       t->sysctl_header = register_sysctl_table(t->devinet_root_dir, 0);
+       t->sysctl_header = register_sysctl_table(t->devinet_root_dir);
        if (!t->sysctl_header)
            goto free_procname;
 
        rtnetlink_links[PF_INET] = inet_rtnetlink_table;
 #ifdef CONFIG_SYSCTL
        devinet_sysctl.sysctl_header =
-               register_sysctl_table(devinet_sysctl.devinet_root_dir, 0);
+               register_sysctl_table(devinet_sysctl.devinet_root_dir);
        devinet_sysctl_register(NULL, &ipv4_devconf_dflt);
 #endif
 }
 
        proc_net_fops_create("ip_vs", 0, &ip_vs_info_fops);
        proc_net_fops_create("ip_vs_stats",0, &ip_vs_stats_fops);
 
-       sysctl_header = register_sysctl_table(vs_root_table, 0);
+       sysctl_header = register_sysctl_table(vs_root_table);
 
        /* Initialize ip_vs_svc_table, ip_vs_svc_fwm_table, ip_vs_rtable */
        for(idx = 0; idx < IP_VS_SVC_TAB_SIZE; idx++)  {
 
 static int __init ip_vs_lblc_init(void)
 {
        INIT_LIST_HEAD(&ip_vs_lblc_scheduler.n_list);
-       sysctl_header = register_sysctl_table(lblc_root_table, 0);
+       sysctl_header = register_sysctl_table(lblc_root_table);
        return register_ip_vs_scheduler(&ip_vs_lblc_scheduler);
 }
 
 
 static int __init ip_vs_lblcr_init(void)
 {
        INIT_LIST_HEAD(&ip_vs_lblcr_scheduler.n_list);
-       sysctl_header = register_sysctl_table(lblcr_root_table, 0);
+       sysctl_header = register_sysctl_table(lblcr_root_table);
 #ifdef CONFIG_IP_VS_LBLCR_DEBUG
        proc_net_create("ip_vs_lblcr", 0, ip_vs_lblcr_getinfo);
 #endif
 
        }
 
 #ifdef CONFIG_SYSCTL
-       ip_ct_sysctl_header = register_sysctl_table(ip_ct_net_table, 0);
+       ip_ct_sysctl_header = register_sysctl_table(ip_ct_net_table);
        if (ip_ct_sysctl_header == NULL) {
                ret = -ENOMEM;
                printk("ip_conntrack_proto_sctp: can't register to sysctl.\n");
 
                goto cleanup_proc_stat;
        }
 #ifdef CONFIG_SYSCTL
-       ip_ct_sysctl_header = register_sysctl_table(ip_ct_net_table, 0);
+       ip_ct_sysctl_header = register_sysctl_table(ip_ct_net_table);
        if (ip_ct_sysctl_header == NULL) {
                printk("ip_conntrack: can't register to sysctl.\n");
                ret = -ENOMEM;
 
        }
 
        register_netdevice_notifier(&ipq_dev_notifier);
-       ipq_sysctl_header = register_sysctl_table(ipq_root_table, 0);
+       ipq_sysctl_header = register_sysctl_table(ipq_root_table);
 
        status = nf_register_queue_handler(PF_INET, &nfqh);
        if (status < 0) {
 
        t->addrconf_root_dir[0].child = t->addrconf_proto_dir;
        t->addrconf_root_dir[0].de = NULL;
 
-       t->sysctl_header = register_sysctl_table(t->addrconf_root_dir, 0);
+       t->sysctl_header = register_sysctl_table(t->addrconf_root_dir);
        if (t->sysctl_header == NULL)
                goto free_procname;
        else
        rtnetlink_links[PF_INET6] = inet6_rtnetlink_table;
 #ifdef CONFIG_SYSCTL
        addrconf_sysctl.sysctl_header =
-               register_sysctl_table(addrconf_sysctl.addrconf_root_dir, 0);
+               register_sysctl_table(addrconf_sysctl.addrconf_root_dir);
        addrconf_sysctl_register(NULL, &ipv6_devconf_dflt);
 #endif
 
 
        }
 
        register_netdevice_notifier(&ipq_dev_notifier);
-       ipq_sysctl_header = register_sysctl_table(ipq_root_table, 0);
+       ipq_sysctl_header = register_sysctl_table(ipq_root_table);
 
        status = nf_register_queue_handler(PF_INET6, &nfqh);
        if (status < 0) {
 
 
 void ipv6_sysctl_register(void)
 {
-       ipv6_sysctl_header = register_sysctl_table(ipv6_root_table, 0);
+       ipv6_sysctl_header = register_sysctl_table(ipv6_root_table);
 }
 
 void ipv6_sysctl_unregister(void)
 
 
 void ipx_register_sysctl(void)
 {
-       ipx_table_header = register_sysctl_table(ipx_root_table, 0);
+       ipx_table_header = register_sysctl_table(ipx_root_table);
 }
 
 void ipx_unregister_sysctl(void)
 
  */
 int __init irda_sysctl_register(void)
 {
-       irda_table_header = register_sysctl_table(irda_root_table, 0);
+       irda_table_header = register_sysctl_table(irda_root_table);
        if (!irda_table_header)
                return -ENOMEM;
 
 
 
 int __init llc_sysctl_init(void)
 {
-       llc_table_header = register_sysctl_table(llc_root_table, 0);
+       llc_table_header = register_sysctl_table(llc_root_table);
 
        return llc_table_header ? 0 : -ENOMEM;
 }
 
        proc_stat->owner = THIS_MODULE;
 #endif
 #ifdef CONFIG_SYSCTL
-       nf_ct_sysctl_header = register_sysctl_table(nf_ct_net_table, 0);
+       nf_ct_sysctl_header = register_sysctl_table(nf_ct_net_table);
        if (nf_ct_sysctl_header == NULL) {
                printk("nf_conntrack: can't register to sysctl.\n");
                ret = -ENOMEM;
 
        path = path_dup(path, table);
        if (path == NULL)
                return NULL;
-       header = register_sysctl_table(path, 0);
+       header = register_sysctl_table(path);
        if (header == NULL)
                path_free(path, table);
        return header;
 
 
 void __init nr_register_sysctl(void)
 {
-       nr_table_header = register_sysctl_table(nr_root_table, 0);
+       nr_table_header = register_sysctl_table(nr_root_table);
 }
 
 void nr_unregister_sysctl(void)
 
 
 void __init rose_register_sysctl(void)
 {
-       rose_table_header = register_sysctl_table(rose_root_table, 0);
+       rose_table_header = register_sysctl_table(rose_root_table);
 }
 
 void rose_unregister_sysctl(void)
 
 int rxrpc_sysctl_init(void)
 {
 #ifdef CONFIG_SYSCTL
-       rxrpc_sysctl = register_sysctl_table(rxrpc_dir_sysctl_table, 0);
+       rxrpc_sysctl = register_sysctl_table(rxrpc_dir_sysctl_table);
        if (!rxrpc_sysctl)
                return -ENOMEM;
 #endif /* CONFIG_SYSCTL */
 
 /* Sysctl registration.  */
 void sctp_sysctl_register(void)
 {
-       sctp_sysctl_header = register_sysctl_table(sctp_root_table, 0);
+       sctp_sysctl_header = register_sysctl_table(sctp_root_table);
 }
 
 /* Sysctl deregistration.  */
 
 rpc_register_sysctl(void)
 {
        if (!sunrpc_table_header)
-               sunrpc_table_header = register_sysctl_table(sunrpc_table, 0);
+               sunrpc_table_header = register_sysctl_table(sunrpc_table);
 }
 
 void
 
 {
 #ifdef RPC_DEBUG
        if (!sunrpc_table_header)
-               sunrpc_table_header = register_sysctl_table(sunrpc_table, 0);
+               sunrpc_table_header = register_sysctl_table(sunrpc_table);
 #endif
 
        return 0;
 
 
 void unix_sysctl_register(void)
 {
-       unix_sysctl_header = register_sysctl_table(unix_root_table, 0);
+       unix_sysctl_header = register_sysctl_table(unix_root_table);
 }
 
 void unix_sysctl_unregister(void)
 
 
 void __init x25_register_sysctl(void)
 {
-       x25_table_header = register_sysctl_table(x25_root_table, 0);
+       x25_table_header = register_sysctl_table(x25_root_table);
 }
 
 void x25_unregister_sysctl(void)