Page MenuHomeFreeBSD

D13407.id42265.diff
No OneTemporary

D13407.id42265.diff

Index: sys/netinet6/in6.c
===================================================================
--- sys/netinet6/in6.c
+++ sys/netinet6/in6.c
@@ -686,7 +686,6 @@
* The failure means address duplication was detected.
*/
}
- EVENTHANDLER_INVOKE(ifaddr_event, ifp);
break;
}
@@ -1399,7 +1398,7 @@
if (ifacount <= 1 && ifp->if_ioctl) {
error = (*ifp->if_ioctl)(ifp, SIOCSIFADDR, (caddr_t)ia);
if (error)
- return (error);
+ goto done;
}
/*
@@ -1439,7 +1438,7 @@
ia->ia_flags |= IFA_RTSELF;
error = rtinit(&ia->ia_ifa, RTM_ADD, ia->ia_flags | rtflags);
if (error)
- return (error);
+ goto done;
ia->ia_flags |= IFA_ROUTE;
}
@@ -1452,7 +1451,12 @@
if (error == 0)
ia->ia_flags |= IFA_RTSELF;
}
+done:
+ WITNESS_WARN(WARN_GIANTOK | WARN_SLEEPOK, NULL,
+ "Invoking IPv6 network device address event may sleep");
+ EVENTHANDLER_INVOKE(ifaddr_event, ifp);
+
return (error);
}

File Metadata

Mime Type
text/plain
Expires
Sat, Sep 12, 1:04 PM (15 h, 27 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
38792751
Default Alt Text
D13407.id42265.diff (944 B)

Event Timeline