.. | .. |
---|
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, |
---|