| .. | .. | 
|---|
| 57 | 57 | unsigned long now = jiffies; | 
|---|
| 58 | 58 |  | 
|---|
| 59 | 59 | /* avoid dirtying neighbour */ | 
|---|
| 60 |  | -		if (n->confirmed != now) | 
|---|
| 61 |  | -			n->confirmed = now; | 
|---|
|  | 60 | +		if (READ_ONCE(n->confirmed) != now) | 
|---|
|  | 61 | +			WRITE_ONCE(n->confirmed, now); | 
|---|
| 62 | 62 | } | 
|---|
| 63 | 63 | rcu_read_unlock_bh(); | 
|---|
| 64 | 64 | } | 
|---|
| .. | .. | 
|---|
| 71 | 71 | const unsigned char *src_hw, const unsigned char *th); | 
|---|
| 72 | 72 | int arp_mc_map(__be32 addr, u8 *haddr, struct net_device *dev, int dir); | 
|---|
| 73 | 73 | void arp_ifdown(struct net_device *dev); | 
|---|
|  | 74 | +int arp_invalidate(struct net_device *dev, __be32 ip, bool force); | 
|---|
| 74 | 75 |  | 
|---|
| 75 | 76 | struct sk_buff *arp_create(int type, int ptype, __be32 dest_ip, | 
|---|
| 76 | 77 | struct net_device *dev, __be32 src_ip, | 
|---|