Page MenuHomeFreeBSD

D48494.id149409.diff
No OneTemporary

D48494.id149409.diff

diff --git a/sys/net/if_vxlan.c b/sys/net/if_vxlan.c
--- a/sys/net/if_vxlan.c
+++ b/sys/net/if_vxlan.c
@@ -1813,6 +1813,7 @@
{
struct ifnet *ifp;
struct vxlan_socket *vso;
+ bool running;
sx_assert(&vxlan_sx, SA_XLOCKED);
VXLAN_LOCK_WASSERT(sc);
@@ -1820,6 +1821,7 @@
ifp = sc->vxl_ifp;
ifp->if_flags &= ~IFF_UP;
+ running = ifp->if_drv_flags & IFF_DRV_RUNNING;
ifp->if_drv_flags &= ~IFF_DRV_RUNNING;
callout_stop(&sc->vxl_callout);
vso = sc->vxl_sock;
@@ -1827,8 +1829,10 @@
VXLAN_WUNLOCK(sc);
if_link_state_change(ifp, LINK_STATE_DOWN);
- EVENTHANDLER_INVOKE(vxlan_stop, ifp, sc->vxl_src_addr.in4.sin_family,
- ntohs(sc->vxl_src_addr.in4.sin_port));
+ if (running)
+ EVENTHANDLER_INVOKE(vxlan_stop, ifp,
+ sc->vxl_src_addr.in4.sin_family,
+ ntohs(sc->vxl_src_addr.in4.sin_port));
if (vso != NULL) {
vxlan_socket_remove_softc(vso, sc);

File Metadata

Mime Type
text/plain
Expires
Mon, Feb 3, 5:01 PM (8 h, 4 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
15853669
Default Alt Text
D48494.id149409.diff (889 B)

Event Timeline