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