Do not call rsl_chan_release directly but use the use_count of the lchan

Call use_lchan early in allocate_loc_updating_req, do not directly call
rsl_chan_release but go through channel alloc to take the use_count into
account.
diff --git a/src/gsm_04_08.c b/src/gsm_04_08.c
index fc74579..61080b4 100644
--- a/src/gsm_04_08.c
+++ b/src/gsm_04_08.c
@@ -98,12 +98,12 @@
 
 static void allocate_loc_updating_req(struct gsm_lchan *lchan)
 {
+	use_lchan(lchan);
 	release_loc_updating_req(lchan);
 
 	lchan->loc_operation = (struct gsm_loc_updating_operation *)
 				malloc(sizeof(*lchan->loc_operation));
 	memset(lchan->loc_operation, 0, sizeof(*lchan->loc_operation));
-	use_lchan(lchan);
 }
 
 static void parse_lai(struct gsm_lai *lai, const struct gsm48_loc_area_id *lai48)
@@ -397,7 +397,7 @@
 
 	release_loc_updating_req(lchan);
 	gsm0408_loc_upd_rej(lchan, reject_cause);
-	rsl_chan_release(lchan);
+	lchan_auto_release(lchan);
 }
 
 static void schedule_reject(struct gsm_lchan *lchan)