diff options
| author | Sam Leffler <sam@FreeBSD.org> | 2003-10-30 23:02:51 +0000 |
|---|---|---|
| committer | Sam Leffler <sam@FreeBSD.org> | 2003-10-30 23:02:51 +0000 |
| commit | 9c63e9dbd78449ff82e855bd04c66097f7923615 (patch) | |
| tree | 86b489ad92452a54684a5299e07cbdce8229465b /sys/netinet/if_ether.c | |
| parent | 52820ec247aefb59ed9e29703bf9f2f037f7a2c8 (diff) | |
Notes
Diffstat (limited to 'sys/netinet/if_ether.c')
| -rw-r--r-- | sys/netinet/if_ether.c | 11 |
1 files changed, 3 insertions, 8 deletions
diff --git a/sys/netinet/if_ether.c b/sys/netinet/if_ether.c index 4cc1d4e24faab..d5916ba010ba7 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 { |
