diff options
Diffstat (limited to 'sys/netatm')
-rw-r--r-- | sys/netatm/atm_aal5.c | 10 | ||||
-rw-r--r-- | sys/netatm/atm_socket.c | 17 | ||||
-rw-r--r-- | sys/netatm/atm_usrreq.c | 2 | ||||
-rw-r--r-- | sys/netatm/atm_var.h | 2 |
4 files changed, 9 insertions, 22 deletions
diff --git a/sys/netatm/atm_aal5.c b/sys/netatm/atm_aal5.c index 2a5e1e3..f21ad798 100644 --- a/sys/netatm/atm_aal5.c +++ b/sys/netatm/atm_aal5.c @@ -66,7 +66,7 @@ u_long atm_aal5_recvspace = 64 * 1024; /* XXX */ * Local functions */ static int atm_aal5_attach(struct socket *, int, struct thread *td); -static int atm_aal5_detach(struct socket *); +static void atm_aal5_detach(struct socket *); static int atm_aal5_bind(struct socket *, struct sockaddr *, struct thread *td); static int atm_aal5_listen(struct socket *, int backlog, @@ -290,15 +290,15 @@ out: * errno error processing request - reason indicated * */ -static int +static void atm_aal5_detach(so) struct socket *so; { - ATM_INTRO("detach"); + ATM_INTRO_NOERR("detach"); - err = atm_sock_detach(so); + atm_sock_detach(so); - ATM_OUTRO(); + ATM_OUTRO_NOERR(); } diff --git a/sys/netatm/atm_socket.c b/sys/netatm/atm_socket.c index 2cdab95..d2aecf1 100644 --- a/sys/netatm/atm_socket.c +++ b/sys/netatm/atm_socket.c @@ -146,12 +146,8 @@ atm_sock_attach(so, send, recv) * Arguments: * so pointer to socket * - * Returns: - * 0 detach successful - * errno detach failed - reason indicated - * */ -int +void atm_sock_detach(so) struct socket *so; { @@ -160,8 +156,7 @@ atm_sock_detach(so) /* * Make sure we're still attached */ - if (atp == NULL) - return (ENOTCONN); + KASSERT(atp != NULL, ("atm_sock_detach: atp == NULL")); /* * Terminate any (possibly pending) connection @@ -170,17 +165,9 @@ atm_sock_detach(so) (void) atm_sock_disconnect(so); } - /* - * Break links and free control blocks - */ - ACCEPT_LOCK(); - SOCK_LOCK(so); so->so_pcb = NULL; - sotryfree(so); uma_zfree(atm_pcb_zone, atp); - - return (0); } diff --git a/sys/netatm/atm_usrreq.c b/sys/netatm/atm_usrreq.c index db5a2ab..8facb95 100644 --- a/sys/netatm/atm_usrreq.c +++ b/sys/netatm/atm_usrreq.c @@ -70,7 +70,7 @@ struct pr_usrreqs atm_dgram_usrreqs = { .pru_attach = atm_dgram_attach, .pru_bind = atm_proto_notsupp2, .pru_control = atm_dgram_control, - .pru_detach = atm_proto_notsupp1, + .pru_detach = atm_proto_notsupp5, .pru_disconnect = atm_proto_notsupp1, .pru_peeraddr = atm_proto_notsupp3, .pru_send = atm_proto_notsupp4, diff --git a/sys/netatm/atm_var.h b/sys/netatm/atm_var.h index 23e43192..788acc9 100644 --- a/sys/netatm/atm_var.h +++ b/sys/netatm/atm_var.h @@ -151,7 +151,7 @@ int atm_create_stack(Atm_connvc *, struct stack_list *, /* atm_socket.c */ void atm_sock_init(void); int atm_sock_attach(struct socket *, u_long, u_long); -int atm_sock_detach(struct socket *); +void atm_sock_detach(struct socket *); int atm_sock_bind(struct socket *, struct sockaddr *); int atm_sock_listen(struct socket *, Atm_endpoint *, int); int atm_sock_connect(struct socket *, struct sockaddr *, |