diff options
Diffstat (limited to 'sys/netkey')
-rw-r--r-- | sys/netkey/keysock.c | 21 |
1 files changed, 7 insertions, 14 deletions
diff --git a/sys/netkey/keysock.c b/sys/netkey/keysock.c index 7b57488..7eb7e0b 100644 --- a/sys/netkey/keysock.c +++ b/sys/netkey/keysock.c @@ -366,24 +366,17 @@ key_connect(struct socket *so, struct sockaddr *nam, struct thread *p) * key_detach() * derived from net/rtsock.c:rts_detach() */ -static int +static void key_detach(struct socket *so) { struct keycb *kp = (struct keycb *)sotorawcb(so); - int s, error; - - s = splnet(); - if (kp != 0) { - if (kp->kp_raw.rcb_proto.sp_protocol - == PF_KEY) /* XXX: AF_KEY */ - key_cb.key_count--; - key_cb.any_count--; - key_freereg(so); - } - error = raw_usrreqs.pru_detach(so); - splx(s); - return error; + KASSERT(kp != NULL, ("key_detach: kp == NULL")); + if (kp->kp_raw.rcb_proto.sp_protocol == PF_KEY) /* XXX: AF_KEY */ + key_cb.key_count--; + key_cb.any_count--; + key_freereg(so); + raw_usrreqs.pru_detach(so); } /* |