summaryrefslogtreecommitdiffstats
path: root/sys/netatm
diff options
context:
space:
mode:
Diffstat (limited to 'sys/netatm')
-rw-r--r--sys/netatm/atm_aal5.c10
-rw-r--r--sys/netatm/atm_socket.c17
-rw-r--r--sys/netatm/atm_usrreq.c2
-rw-r--r--sys/netatm/atm_var.h2
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 *,
OpenPOWER on IntegriCloud