diff options
| author | Ingo Molnar <mingo@kernel.org> | 2013-04-19 13:03:08 +0200 | 
|---|---|---|
| committer | Ingo Molnar <mingo@kernel.org> | 2013-04-19 13:03:08 +0200 | 
| commit | 5379f8c0d72cab43bbe6d974ceb3ad84dddc2b8e (patch) | |
| tree | 524d8ac34cc8c7ef68b43e3ee6e08e27db86299c /net/core/dev.c | |
| parent | b6d5278dc8385eaf2e3904a4af444a04f6ae4e71 (diff) | |
| parent | 94c1acf2c85b03a59a42d931a94a13a76c123a62 (diff) | |
| download | olio-linux-3.10-5379f8c0d72cab43bbe6d974ceb3ad84dddc2b8e.tar.xz olio-linux-3.10-5379f8c0d72cab43bbe6d974ceb3ad84dddc2b8e.zip  | |
Merge tag 'edac_amd_f16h' of git://git.kernel.org/pub/scm/linux/kernel/git/ras/ras into x86/ras
Pull AMD F16h support for amd64_edac from Borislav Petkov.
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'net/core/dev.c')
| -rw-r--r-- | net/core/dev.c | 8 | 
1 files changed, 7 insertions, 1 deletions
diff --git a/net/core/dev.c b/net/core/dev.c index b13e5c766c1..e7d68ed8aaf 100644 --- a/net/core/dev.c +++ b/net/core/dev.c @@ -1624,7 +1624,6 @@ int dev_forward_skb(struct net_device *dev, struct sk_buff *skb)  	}  	skb_orphan(skb); -	nf_reset(skb);  	if (unlikely(!is_skb_forwardable(dev, skb))) {  		atomic_long_inc(&dev->rx_dropped); @@ -1640,6 +1639,7 @@ int dev_forward_skb(struct net_device *dev, struct sk_buff *skb)  	skb->mark = 0;  	secpath_reset(skb);  	nf_reset(skb); +	nf_reset_trace(skb);  	return netif_rx(skb);  }  EXPORT_SYMBOL_GPL(dev_forward_skb); @@ -3314,6 +3314,7 @@ int netdev_rx_handler_register(struct net_device *dev,  	if (dev->rx_handler)  		return -EBUSY; +	/* Note: rx_handler_data must be set before rx_handler */  	rcu_assign_pointer(dev->rx_handler_data, rx_handler_data);  	rcu_assign_pointer(dev->rx_handler, rx_handler); @@ -3334,6 +3335,11 @@ void netdev_rx_handler_unregister(struct net_device *dev)  	ASSERT_RTNL();  	RCU_INIT_POINTER(dev->rx_handler, NULL); +	/* a reader seeing a non NULL rx_handler in a rcu_read_lock() +	 * section has a guarantee to see a non NULL rx_handler_data +	 * as well. +	 */ +	synchronize_net();  	RCU_INIT_POINTER(dev->rx_handler_data, NULL);  }  EXPORT_SYMBOL_GPL(netdev_rx_handler_unregister);  |