Loading Documentation/feature-removal-schedule.txt +0 −10 Original line number Diff line number Diff line Loading @@ -241,16 +241,6 @@ Who: Thomas Gleixner <tglx@linutronix.de> --------------------------- What (Why): - xt_recent: the old ipt_recent proc dir (superseded by /proc/net/xt_recent) When: January 2009 or Linux 2.7.0, whichever comes first Why: Superseded by newer revisions or modules Who: Jan Engelhardt <jengelh@medozas.de> --------------------------- What: GPIO autorequest on gpio_direction_{input,output}() in gpiolib When: February 2010 Why: All callers should use explicit gpio_request()/gpio_free(). Loading net/netfilter/Kconfig +0 −7 Original line number Diff line number Diff line Loading @@ -859,13 +859,6 @@ config NETFILTER_XT_MATCH_RECENT Short options are available by using 'iptables -m recent -h' Official Website: <http://snowman.net/projects/ipt_recent/> config NETFILTER_XT_MATCH_RECENT_PROC_COMPAT bool 'Enable obsolete /proc/net/ipt_recent' depends on NETFILTER_XT_MATCH_RECENT && PROC_FS ---help--- This option enables the old /proc/net/ipt_recent interface, which has been obsoleted by /proc/net/xt_recent. config NETFILTER_XT_MATCH_SCTP tristate '"sctp" protocol match support (EXPERIMENTAL)' depends on EXPERIMENTAL Loading net/netfilter/xt_recent.c +0 −105 Original line number Diff line number Diff line Loading @@ -83,9 +83,6 @@ struct recent_net { struct list_head tables; #ifdef CONFIG_PROC_FS struct proc_dir_entry *xt_recent; #ifdef CONFIG_NETFILTER_XT_MATCH_RECENT_PROC_COMPAT struct proc_dir_entry *ipt_recent; #endif #endif }; Loading Loading @@ -342,17 +339,6 @@ static bool recent_mt_check(const struct xt_mtchk_param *par) } pde->uid = ip_list_uid; pde->gid = ip_list_gid; #ifdef CONFIG_NETFILTER_XT_MATCH_RECENT_PROC_COMPAT pde = proc_create_data(t->name, ip_list_perms, recent_net->ipt_recent, &recent_old_fops, t); if (pde == NULL) { remove_proc_entry(t->name, recent_net->xt_recent); kfree(t); goto out; } pde->uid = ip_list_uid; pde->gid = ip_list_gid; #endif #endif spin_lock_bh(&recent_lock); list_add_tail(&t->list, &recent_net->tables); Loading @@ -376,9 +362,6 @@ static void recent_mt_destroy(const struct xt_mtdtor_param *par) list_del(&t->list); spin_unlock_bh(&recent_lock); #ifdef CONFIG_PROC_FS #ifdef CONFIG_NETFILTER_XT_MATCH_RECENT_PROC_COMPAT remove_proc_entry(t->name, recent_net->ipt_recent); #endif remove_proc_entry(t->name, recent_net->xt_recent); #endif recent_table_flush(t); Loading Loading @@ -470,84 +453,6 @@ static int recent_seq_open(struct inode *inode, struct file *file) return 0; } #ifdef CONFIG_NETFILTER_XT_MATCH_RECENT_PROC_COMPAT static int recent_old_seq_open(struct inode *inode, struct file *filp) { static bool warned_of_old; if (unlikely(!warned_of_old)) { printk(KERN_INFO KBUILD_MODNAME ": Use of /proc/net/ipt_recent" " is deprecated; use /proc/net/xt_recent.\n"); warned_of_old = true; } return recent_seq_open(inode, filp); } static ssize_t recent_old_proc_write(struct file *file, const char __user *input, size_t size, loff_t *loff) { const struct proc_dir_entry *pde = PDE(file->f_path.dentry->d_inode); struct recent_table *t = pde->data; struct recent_entry *e; char buf[sizeof("+255.255.255.255")], *c = buf; union nf_inet_addr addr = {}; int add; if (size > sizeof(buf)) size = sizeof(buf); if (copy_from_user(buf, input, size)) return -EFAULT; c = skip_spaces(c); if (size - (c - buf) < 5) return c - buf; if (!strncmp(c, "clear", 5)) { c += 5; spin_lock_bh(&recent_lock); recent_table_flush(t); spin_unlock_bh(&recent_lock); return c - buf; } switch (*c) { case '-': add = 0; c++; break; case '+': c++; default: add = 1; break; } addr.ip = in_aton(c); spin_lock_bh(&recent_lock); e = recent_entry_lookup(t, &addr, NFPROTO_IPV4, 0); if (e == NULL) { if (add) recent_entry_init(t, &addr, NFPROTO_IPV4, 0); } else { if (add) recent_entry_update(t, e); else recent_entry_remove(t, e); } spin_unlock_bh(&recent_lock); return size; } static const struct file_operations recent_old_fops = { .open = recent_old_seq_open, .read = seq_read, .write = recent_old_proc_write, .release = seq_release_private, .owner = THIS_MODULE, }; #endif static ssize_t recent_mt_proc_write(struct file *file, const char __user *input, size_t size, loff_t *loff) Loading Loading @@ -636,21 +541,11 @@ static int __net_init recent_proc_net_init(struct net *net) recent_net->xt_recent = proc_mkdir("xt_recent", net->proc_net); if (!recent_net->xt_recent) return -ENOMEM; #ifdef CONFIG_NETFILTER_XT_MATCH_RECENT_PROC_COMPAT recent_net->ipt_recent = proc_mkdir("ipt_recent", net->proc_net); if (!recent_net->ipt_recent) { proc_net_remove(net, "xt_recent"); return -ENOMEM; } #endif return 0; } static void __net_exit recent_proc_net_exit(struct net *net) { #ifdef CONFIG_NETFILTER_XT_MATCH_RECENT_PROC_COMPAT proc_net_remove(net, "ipt_recent"); #endif proc_net_remove(net, "xt_recent"); } #else Loading Loading
Documentation/feature-removal-schedule.txt +0 −10 Original line number Diff line number Diff line Loading @@ -241,16 +241,6 @@ Who: Thomas Gleixner <tglx@linutronix.de> --------------------------- What (Why): - xt_recent: the old ipt_recent proc dir (superseded by /proc/net/xt_recent) When: January 2009 or Linux 2.7.0, whichever comes first Why: Superseded by newer revisions or modules Who: Jan Engelhardt <jengelh@medozas.de> --------------------------- What: GPIO autorequest on gpio_direction_{input,output}() in gpiolib When: February 2010 Why: All callers should use explicit gpio_request()/gpio_free(). Loading
net/netfilter/Kconfig +0 −7 Original line number Diff line number Diff line Loading @@ -859,13 +859,6 @@ config NETFILTER_XT_MATCH_RECENT Short options are available by using 'iptables -m recent -h' Official Website: <http://snowman.net/projects/ipt_recent/> config NETFILTER_XT_MATCH_RECENT_PROC_COMPAT bool 'Enable obsolete /proc/net/ipt_recent' depends on NETFILTER_XT_MATCH_RECENT && PROC_FS ---help--- This option enables the old /proc/net/ipt_recent interface, which has been obsoleted by /proc/net/xt_recent. config NETFILTER_XT_MATCH_SCTP tristate '"sctp" protocol match support (EXPERIMENTAL)' depends on EXPERIMENTAL Loading
net/netfilter/xt_recent.c +0 −105 Original line number Diff line number Diff line Loading @@ -83,9 +83,6 @@ struct recent_net { struct list_head tables; #ifdef CONFIG_PROC_FS struct proc_dir_entry *xt_recent; #ifdef CONFIG_NETFILTER_XT_MATCH_RECENT_PROC_COMPAT struct proc_dir_entry *ipt_recent; #endif #endif }; Loading Loading @@ -342,17 +339,6 @@ static bool recent_mt_check(const struct xt_mtchk_param *par) } pde->uid = ip_list_uid; pde->gid = ip_list_gid; #ifdef CONFIG_NETFILTER_XT_MATCH_RECENT_PROC_COMPAT pde = proc_create_data(t->name, ip_list_perms, recent_net->ipt_recent, &recent_old_fops, t); if (pde == NULL) { remove_proc_entry(t->name, recent_net->xt_recent); kfree(t); goto out; } pde->uid = ip_list_uid; pde->gid = ip_list_gid; #endif #endif spin_lock_bh(&recent_lock); list_add_tail(&t->list, &recent_net->tables); Loading @@ -376,9 +362,6 @@ static void recent_mt_destroy(const struct xt_mtdtor_param *par) list_del(&t->list); spin_unlock_bh(&recent_lock); #ifdef CONFIG_PROC_FS #ifdef CONFIG_NETFILTER_XT_MATCH_RECENT_PROC_COMPAT remove_proc_entry(t->name, recent_net->ipt_recent); #endif remove_proc_entry(t->name, recent_net->xt_recent); #endif recent_table_flush(t); Loading Loading @@ -470,84 +453,6 @@ static int recent_seq_open(struct inode *inode, struct file *file) return 0; } #ifdef CONFIG_NETFILTER_XT_MATCH_RECENT_PROC_COMPAT static int recent_old_seq_open(struct inode *inode, struct file *filp) { static bool warned_of_old; if (unlikely(!warned_of_old)) { printk(KERN_INFO KBUILD_MODNAME ": Use of /proc/net/ipt_recent" " is deprecated; use /proc/net/xt_recent.\n"); warned_of_old = true; } return recent_seq_open(inode, filp); } static ssize_t recent_old_proc_write(struct file *file, const char __user *input, size_t size, loff_t *loff) { const struct proc_dir_entry *pde = PDE(file->f_path.dentry->d_inode); struct recent_table *t = pde->data; struct recent_entry *e; char buf[sizeof("+255.255.255.255")], *c = buf; union nf_inet_addr addr = {}; int add; if (size > sizeof(buf)) size = sizeof(buf); if (copy_from_user(buf, input, size)) return -EFAULT; c = skip_spaces(c); if (size - (c - buf) < 5) return c - buf; if (!strncmp(c, "clear", 5)) { c += 5; spin_lock_bh(&recent_lock); recent_table_flush(t); spin_unlock_bh(&recent_lock); return c - buf; } switch (*c) { case '-': add = 0; c++; break; case '+': c++; default: add = 1; break; } addr.ip = in_aton(c); spin_lock_bh(&recent_lock); e = recent_entry_lookup(t, &addr, NFPROTO_IPV4, 0); if (e == NULL) { if (add) recent_entry_init(t, &addr, NFPROTO_IPV4, 0); } else { if (add) recent_entry_update(t, e); else recent_entry_remove(t, e); } spin_unlock_bh(&recent_lock); return size; } static const struct file_operations recent_old_fops = { .open = recent_old_seq_open, .read = seq_read, .write = recent_old_proc_write, .release = seq_release_private, .owner = THIS_MODULE, }; #endif static ssize_t recent_mt_proc_write(struct file *file, const char __user *input, size_t size, loff_t *loff) Loading Loading @@ -636,21 +541,11 @@ static int __net_init recent_proc_net_init(struct net *net) recent_net->xt_recent = proc_mkdir("xt_recent", net->proc_net); if (!recent_net->xt_recent) return -ENOMEM; #ifdef CONFIG_NETFILTER_XT_MATCH_RECENT_PROC_COMPAT recent_net->ipt_recent = proc_mkdir("ipt_recent", net->proc_net); if (!recent_net->ipt_recent) { proc_net_remove(net, "xt_recent"); return -ENOMEM; } #endif return 0; } static void __net_exit recent_proc_net_exit(struct net *net) { #ifdef CONFIG_NETFILTER_XT_MATCH_RECENT_PROC_COMPAT proc_net_remove(net, "ipt_recent"); #endif proc_net_remove(net, "xt_recent"); } #else Loading