re-order the sequence of events in bsc_api:handle_release()

This should make sure conn->lchan is valid throughout the release
cause, especially make trau_mux_unmap() happy that conn->lchan
still exists.
diff --git a/openbsc/src/bsc_api.c b/openbsc/src/bsc_api.c
index 8e858c5..73b29b5 100644
--- a/openbsc/src/bsc_api.c
+++ b/openbsc/src/bsc_api.c
@@ -617,11 +617,6 @@
 {
 	int destruct = 1;
 
-	/* now give up all channels */
-	if (conn->lchan == lchan)
-		conn->lchan = NULL;
-	if (conn->ho_lchan == lchan)
-		conn->ho_lchan = NULL;
 	if (conn->secondary_lchan == lchan) {
 		bsc_del_timer(&conn->T10);
 		conn->secondary_lchan = NULL;
@@ -631,12 +626,16 @@
 				 NULL);
 	}
 
-	lchan->conn = NULL;
-
 	/* clear the connection now */
 	if (bsc->clear_request)
 		destruct = bsc->clear_request(conn, 0);
 
+	/* now give up all channels */
+	if (conn->lchan == lchan)
+		conn->lchan = NULL;
+	if (conn->ho_lchan == lchan)
+		conn->ho_lchan = NULL;
+	lchan->conn = NULL;
 
 	gsm0808_clear(conn);