aboutsummaryrefslogtreecommitdiff
path: root/sys/net
diff options
context:
space:
mode:
authorMatt Macy <mmacy@FreeBSD.org>2018-05-30 21:46:10 +0000
committerMatt Macy <mmacy@FreeBSD.org>2018-05-30 21:46:10 +0000
commit91d6c9b93ebcb931a083177d62a1274a3ee5b9ac (patch)
tree37bec0274a16a380e705620c5e9e0ce6e2386089 /sys/net
parentd05d616c355d52cc59437c555a62e826b9b269cc (diff)
downloadsrc-91d6c9b93ebcb931a083177d62a1274a3ee5b9ac.tar.gz
src-91d6c9b93ebcb931a083177d62a1274a3ee5b9ac.zip
if_setlladdr: don't call ioctl in epoch context
PR: 228612 Reported by: markj
Notes
Notes: svn path=/head/; revision=334402
Diffstat (limited to 'sys/net')
-rw-r--r--sys/net/if.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/sys/net/if.c b/sys/net/if.c
index 37ed26092c0c..6d85a0f1165d 100644
--- a/sys/net/if.c
+++ b/sys/net/if.c
@@ -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);