summaryrefslogtreecommitdiffstats
path: root/sys/netinet/if_ether.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/netinet/if_ether.c')
-rw-r--r--sys/netinet/if_ether.c11
1 files changed, 3 insertions, 8 deletions
diff --git a/sys/netinet/if_ether.c b/sys/netinet/if_ether.c
index 4cc1d4e..d5916ba 100644
--- a/sys/netinet/if_ether.c
+++ b/sys/netinet/if_ether.c
@@ -949,14 +949,9 @@ arplookup(addr, create, proxy)
* arplookup() is creating the route, then purge
* it from the routing table as it is probably bogus.
*/
- RT_UNLOCK(rt);
- if (rt->rt_refcnt == 1 && ISDYNCLONE(rt)) {
- rtrequest(RTM_DELETE,
- (struct sockaddr *)rt_key(rt),
- rt->rt_gateway, rt_mask(rt),
- rt->rt_flags, 0);
- }
- RTFREE(rt);
+ if (rt->rt_refcnt == 1 && ISDYNCLONE(rt))
+ rtexpunge(rt);
+ RTFREE_LOCKED(rt);
return (0);
#undef ISDYNCLONE
} else {
OpenPOWER on IntegriCloud