if_setlladdr: don't call ioctl in epoch context

PR: 228612
Reported by: markj
This commit is contained in:
Matt Macy 2018-05-30 21:46:10 +00:00
parent d05d616c35
commit 91d6c9b93e
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=334402

View File

@ -3839,6 +3839,7 @@ if_setlladdr(struct ifnet *ifp, const u_char *lladdr, int len)
* to re-init it in order to reprogram its
* address filter.
*/
NET_EPOCH_EXIT();
if ((ifp->if_flags & IFF_UP) != 0) {
if (ifp->if_ioctl) {
ifp->if_flags &= ~IFF_UP;
@ -3852,6 +3853,7 @@ if_setlladdr(struct ifnet *ifp, const u_char *lladdr, int len)
}
}
EVENTHANDLER_INVOKE(iflladdr_event, ifp);
return (0);
out:
NET_EPOCH_EXIT();
return (rc);