diff options
Diffstat (limited to 'net/netfilter/x_tables.c')
| -rw-r--r-- | net/netfilter/x_tables.c | 7 | 
1 files changed, 6 insertions, 1 deletions
diff --git a/net/netfilter/x_tables.c b/net/netfilter/x_tables.c index 8b03028cca6..227aa11e840 100644 --- a/net/netfilter/x_tables.c +++ b/net/netfilter/x_tables.c @@ -845,8 +845,13 @@ xt_replace_table(struct xt_table *table,  		return NULL;  	} -	table->private = newinfo;  	newinfo->initial_entries = private->initial_entries; +	/* +	 * Ensure contents of newinfo are visible before assigning to +	 * private. +	 */ +	smp_wmb(); +	table->private = newinfo;  	/*  	 * Even though table entries have now been swapped, other CPU's  | 
