diff options
Diffstat (limited to 'net/core/dst.c')
| -rw-r--r-- | net/core/dst.c | 10 | 
1 files changed, 5 insertions, 5 deletions
| diff --git a/net/core/dst.c b/net/core/dst.c index 795ca07e28a4..e2de8b68c41d 100644 --- a/net/core/dst.c +++ b/net/core/dst.c @@ -145,12 +145,12 @@ void dst_dev_put(struct dst_entry *dst)  {  	struct net_device *dev = dst->dev; -	dst->obsolete = DST_OBSOLETE_DEAD; +	WRITE_ONCE(dst->obsolete, DST_OBSOLETE_DEAD);  	if (dst->ops->ifdown)  		dst->ops->ifdown(dst, dev); -	dst->input = dst_discard; -	dst->output = dst_discard_out; -	dst->dev = blackhole_netdev; +	WRITE_ONCE(dst->input, dst_discard); +	WRITE_ONCE(dst->output, dst_discard_out); +	WRITE_ONCE(dst->dev, blackhole_netdev);  	netdev_ref_replace(dev, blackhole_netdev, &dst->dev_tracker,  			   GFP_ATOMIC);  } @@ -263,7 +263,7 @@ unsigned int dst_blackhole_mtu(const struct dst_entry *dst)  {  	unsigned int mtu = dst_metric_raw(dst, RTAX_MTU); -	return mtu ? : dst->dev->mtu; +	return mtu ? : dst_dev(dst)->mtu;  }  EXPORT_SYMBOL_GPL(dst_blackhole_mtu); | 
