summaryrefslogtreecommitdiff
path: root/sys/netinet6/in6.c
diff options
context:
space:
mode:
authorMartin Pieuchot <mpi@cvs.openbsd.org>2017-02-16 10:15:13 +0000
committerMartin Pieuchot <mpi@cvs.openbsd.org>2017-02-16 10:15:13 +0000
commit84ee0062632bfb7d2b02950f892bdc20ff689745 (patch)
treec7352b7082bb392a7c00b46a216db7bf7eac9521 /sys/netinet6/in6.c
parenta6ff5f627763ade02a6f6f153833f35a7795373e (diff)
Revert "Release the NET_LOCK() before entering per-driver ioctl() routine".
This is most likely to be the cause of the deadlock seen by port builders since it's the only changed that happened after a2k17. Instead bring back pirofti@ original hack to release the NET_LOCK() inside iwm(4) and iwn(4). This fixes some splassert reported by bluhm@ Deadlock reported by naddy@ and rpe@ and ajacoutot@ confirmed the deadlock has been introduced post a2k17. Tested by and ok tb@
Diffstat (limited to 'sys/netinet6/in6.c')
-rw-r--r--sys/netinet6/in6.c5
1 files changed, 1 insertions, 4 deletions
diff --git a/sys/netinet6/in6.c b/sys/netinet6/in6.c
index 9f854c7c85b..eee64de70a4 100644
--- a/sys/netinet6/in6.c
+++ b/sys/netinet6/in6.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: in6.c,v 1.198 2017/02/07 10:08:21 mpi Exp $ */
+/* $OpenBSD: in6.c,v 1.199 2017/02/16 10:15:12 mpi Exp $ */
/* $KAME: in6.c,v 1.372 2004/06/14 08:14:21 itojun Exp $ */
/*
@@ -472,10 +472,7 @@ in6_ioctl(u_long cmd, caddr_t data, struct ifnet *ifp, int privileged)
default:
if (ifp->if_ioctl == NULL)
return (EOPNOTSUPP);
- /* XXXSMP breaks atomicity */
- rw_exit_write(&netlock);
error = ((*ifp->if_ioctl)(ifp, cmd, data));
- rw_enter_write(&netlock);
return (error);
}