Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 81892
b: refs/heads/master
c: a98da11
h: refs/heads/master
v: v3
  • Loading branch information
Alexey Dobriyan authored and David S. Miller committed Feb 1, 2008
1 parent 0d4864a commit 3312adc
Show file tree
Hide file tree
Showing 6 changed files with 24 additions and 19 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 30083c9500b8aa3bc48579eaadb5068ad057afbd
refs/heads/master: a98da11d88dbec1d5cebe2c6dbe9939ed8d13f69
6 changes: 3 additions & 3 deletions trunk/include/linux/netfilter/x_tables.h
Original file line number Diff line number Diff line change
Expand Up @@ -335,9 +335,9 @@ extern int xt_check_target(const struct xt_target *target, unsigned short family
unsigned int size, const char *table, unsigned int hook,
unsigned short proto, int inv_proto);

extern int xt_register_table(struct xt_table *table,
struct xt_table_info *bootstrap,
struct xt_table_info *newinfo);
extern struct xt_table *xt_register_table(struct xt_table *table,
struct xt_table_info *bootstrap,
struct xt_table_info *newinfo);
extern void *xt_unregister_table(struct xt_table *table);

extern struct xt_table_info *xt_replace_table(struct xt_table *table,
Expand Down
7 changes: 4 additions & 3 deletions trunk/net/ipv4/netfilter/arp_tables.c
Original file line number Diff line number Diff line change
Expand Up @@ -1727,6 +1727,7 @@ int arpt_register_table(struct arpt_table *table,
struct xt_table_info bootstrap
= { 0, 0, 0, { 0 }, { 0 }, { } };
void *loc_cpu_entry;
struct xt_table *new_table;

newinfo = xt_alloc_table_info(repl->size);
if (!newinfo) {
Expand All @@ -1750,10 +1751,10 @@ int arpt_register_table(struct arpt_table *table,
return ret;
}

ret = xt_register_table(table, &bootstrap, newinfo);
if (ret != 0) {
new_table = xt_register_table(table, &bootstrap, newinfo);
if (IS_ERR(new_table)) {
xt_free_table_info(newinfo);
return ret;
return PTR_ERR(new_table);
}

return 0;
Expand Down
7 changes: 4 additions & 3 deletions trunk/net/ipv4/netfilter/ip_tables.c
Original file line number Diff line number Diff line change
Expand Up @@ -2055,6 +2055,7 @@ int ipt_register_table(struct xt_table *table, const struct ipt_replace *repl)
struct xt_table_info bootstrap
= { 0, 0, 0, { 0 }, { 0 }, { } };
void *loc_cpu_entry;
struct xt_table *new_table;

newinfo = xt_alloc_table_info(repl->size);
if (!newinfo)
Expand All @@ -2074,10 +2075,10 @@ int ipt_register_table(struct xt_table *table, const struct ipt_replace *repl)
return ret;
}

ret = xt_register_table(table, &bootstrap, newinfo);
if (ret != 0) {
new_table = xt_register_table(table, &bootstrap, newinfo);
if (IS_ERR(new_table)) {
xt_free_table_info(newinfo);
return ret;
return PTR_ERR(new_table);
}

return 0;
Expand Down
7 changes: 4 additions & 3 deletions trunk/net/ipv6/netfilter/ip6_tables.c
Original file line number Diff line number Diff line change
Expand Up @@ -2081,6 +2081,7 @@ int ip6t_register_table(struct xt_table *table, const struct ip6t_replace *repl)
struct xt_table_info bootstrap
= { 0, 0, 0, { 0 }, { 0 }, { } };
void *loc_cpu_entry;
struct xt_table *new_table;

newinfo = xt_alloc_table_info(repl->size);
if (!newinfo)
Expand All @@ -2100,10 +2101,10 @@ int ip6t_register_table(struct xt_table *table, const struct ip6t_replace *repl)
return ret;
}

ret = xt_register_table(table, &bootstrap, newinfo);
if (ret != 0) {
new_table = xt_register_table(table, &bootstrap, newinfo);
if (IS_ERR(new_table)) {
xt_free_table_info(newinfo);
return ret;
return PTR_ERR(new_table);
}

return 0;
Expand Down
14 changes: 8 additions & 6 deletions trunk/net/netfilter/x_tables.c
Original file line number Diff line number Diff line change
Expand Up @@ -660,17 +660,17 @@ xt_replace_table(struct xt_table *table,
}
EXPORT_SYMBOL_GPL(xt_replace_table);

int xt_register_table(struct xt_table *table,
struct xt_table_info *bootstrap,
struct xt_table_info *newinfo)
struct xt_table *xt_register_table(struct xt_table *table,
struct xt_table_info *bootstrap,
struct xt_table_info *newinfo)
{
int ret;
struct xt_table_info *private;
struct xt_table *t;

ret = mutex_lock_interruptible(&xt[table->af].mutex);
if (ret != 0)
return ret;
goto out;

/* Don't autoload: we'd eat our tail... */
list_for_each_entry(t, &xt[table->af].tables, list) {
Expand All @@ -693,11 +693,13 @@ int xt_register_table(struct xt_table *table,
private->initial_entries = private->number;

list_add(&table->list, &xt[table->af].tables);
mutex_unlock(&xt[table->af].mutex);
return table;

ret = 0;
unlock:
mutex_unlock(&xt[table->af].mutex);
return ret;
out:
return ERR_PTR(ret);
}
EXPORT_SYMBOL_GPL(xt_register_table);

Expand Down

0 comments on commit 3312adc

Please sign in to comment.