summaryrefslogtreecommitdiffstats
path: root/sys/netkey/keysock.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/netkey/keysock.c')
-rw-r--r--sys/netkey/keysock.c21
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);
}
/*
OpenPOWER on IntegriCloud