summaryrefslogtreecommitdiffstats
path: root/sys/net/ieee8023ad_lacp.c
diff options
context:
space:
mode:
authorthompsa <thompsa@FreeBSD.org>2007-05-07 00:28:55 +0000
committerthompsa <thompsa@FreeBSD.org>2007-05-07 00:28:55 +0000
commit46904da6708bef5c82473bee8fa21f4e0d2a8730 (patch)
tree67b80c585fcd86344d00a12b18ee6d2d44484700 /sys/net/ieee8023ad_lacp.c
parentcaab23fd294a310227a4c2f4912f639cdebc28e2 (diff)
downloadFreeBSD-src-46904da6708bef5c82473bee8fa21f4e0d2a8730.zip
FreeBSD-src-46904da6708bef5c82473bee8fa21f4e0d2a8730.tar.gz
Avoid touching various unsafe parts if the interface is disappearing.
Diffstat (limited to 'sys/net/ieee8023ad_lacp.c')
-rw-r--r--sys/net/ieee8023ad_lacp.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/sys/net/ieee8023ad_lacp.c b/sys/net/ieee8023ad_lacp.c
index 2753c98..b022035 100644
--- a/sys/net/ieee8023ad_lacp.c
+++ b/sys/net/ieee8023ad_lacp.c
@@ -485,7 +485,9 @@ lacp_port_destroy(struct lagg_port *lgp)
lacp_unselect(lp);
lgp->lp_flags &= ~LAGG_PORT_DISABLED;
- if_delmulti_ifma(lp->lp_ifma);
+ /* The address may have already been removed by if_purgemaddrs() */
+ if (!lgp->lp_detaching)
+ if_delmulti_ifma(lp->lp_ifma);
LIST_REMOVE(lp, lp_next);
free(lp, M_DEVBUF);
OpenPOWER on IntegriCloud