Purely mechanical except for the early function-local sockaddr dance,
same story as with the previous nd6_ioctl() push.
Feedback? OK?
---
sys/netinet6/in6.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/sys/netinet6/in6.c b/sys/netinet6/in6.c
index 26f1127973e..65f4b44e700 100644
--- a/sys/netinet6/in6.c
+++ b/sys/netinet6/in6.c
@@ -245,9 +245,7 @@ in6_ioctl(u_long cmd, caddr_t data, struct ifnet *ifp, int
privileged)
case SIOCDIFADDR_IN6:
if (!privileged)
return (EPERM);
- KERNEL_LOCK();
error = in6_ioctl_change_ifaddr(cmd, data, ifp);
- KERNEL_UNLOCK();
return (error);
case SIOCSIFADDR:
case SIOCSIFDSTADDR:
@@ -303,6 +301,7 @@ in6_ioctl_change_ifaddr(u_long cmd, caddr_t data, struct
ifnet *ifp)
return (error);
}
+ KERNEL_LOCK();
NET_LOCK();
if (sa6 != NULL) {
@@ -409,6 +408,7 @@ in6_ioctl_change_ifaddr(u_long cmd, caddr_t data, struct
ifnet *ifp)
err:
NET_UNLOCK();
+ KERNEL_UNLOCK();
return (error);
}
--
2.38.1