Commit 51e9ba48 authored by Kuniyuki Iwashima's avatar Kuniyuki Iwashima Committed by Jakub Kicinski

arp: Remove a nest in arp_req_get().

This is a prep patch to make the following changes tidy.

No functional change intended.
Signed-off-by: default avatarKuniyuki Iwashima <kuniyu@amazon.com>
Link: https://lore.kernel.org/r/20240430015813.71143-5-kuniyu@amazon.comSigned-off-by: default avatarJakub Kicinski <kuba@kernel.org>
parent f8696133
......@@ -1138,23 +1138,28 @@ static int arp_req_get(struct arpreq *r, struct net_device *dev)
{
__be32 ip = ((struct sockaddr_in *) &r->arp_pa)->sin_addr.s_addr;
struct neighbour *neigh;
int err = -ENXIO;
neigh = neigh_lookup(&arp_tbl, &ip, dev);
if (neigh) {
if (!(READ_ONCE(neigh->nud_state) & NUD_NOARP)) {
if (!neigh)
return -ENXIO;
if (READ_ONCE(neigh->nud_state) & NUD_NOARP) {
neigh_release(neigh);
return -ENXIO;
}
read_lock_bh(&neigh->lock);
memcpy(r->arp_ha.sa_data, neigh->ha,
min(dev->addr_len, sizeof(r->arp_ha.sa_data_min)));
r->arp_flags = arp_state_to_flags(neigh);
read_unlock_bh(&neigh->lock);
neigh_release(neigh);
r->arp_ha.sa_family = dev->type;
strscpy(r->arp_dev, dev->name, sizeof(r->arp_dev));
err = 0;
}
neigh_release(neigh);
}
return err;
return 0;
}
int arp_invalidate(struct net_device *dev, __be32 ip, bool force)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment