bts: Remove the global state from write_packet_uplink_ack

Similiar to the previous patches
diff --git a/src/gprs_rlcmac.cpp b/src/gprs_rlcmac.cpp
index f0d58d9..f8c40ac 100644
--- a/src/gprs_rlcmac.cpp
+++ b/src/gprs_rlcmac.cpp
@@ -776,14 +776,14 @@
 }
 
 /* generate uplink ack */
-void write_packet_uplink_ack(RlcMacDownlink_t * block, struct gprs_rlcmac_tbf *tbf,
+void write_packet_uplink_ack(struct gprs_rlcmac_bts *bts,
+	RlcMacDownlink_t * block, struct gprs_rlcmac_tbf *tbf,
 	uint8_t final)
 {
 	// Packet Uplink Ack/Nack  TS 44.060 11.2.28
 
 	char show_v_n[65];
 
-	struct gprs_rlcmac_bts *bts = gprs_rlcmac_bts;
 	uint8_t rbb = 0;
 	uint16_t i, bbn;
 	uint16_t mod_sns_half = (tbf->sns >> 1) - 1;
diff --git a/src/gprs_rlcmac.h b/src/gprs_rlcmac.h
index 760579b..43f38c7 100644
--- a/src/gprs_rlcmac.h
+++ b/src/gprs_rlcmac.h
@@ -178,7 +178,7 @@
 
 
 
-void write_packet_uplink_ack(RlcMacDownlink_t * block, struct gprs_rlcmac_tbf *tbf,
+void write_packet_uplink_ack(struct gprs_rlcmac_bts *bts, RlcMacDownlink_t * block, struct gprs_rlcmac_tbf *tbf,
         uint8_t final);
 
 int gprs_rlcmac_tx_ul_ud(gprs_rlcmac_tbf *tbf);
@@ -220,7 +220,8 @@
 struct msgb *gprs_rlcmac_send_data_block_acknowledged(
         struct gprs_rlcmac_tbf *tbf, uint32_t fn, uint8_t ts);
 
-struct msgb *gprs_rlcmac_send_uplink_ack(struct gprs_rlcmac_tbf *tbf,
+struct msgb *gprs_rlcmac_send_uplink_ack(struct gprs_rlcmac_bts *bts,
+	struct gprs_rlcmac_tbf *tbf,
         uint32_t fn);
 
 int gprs_rlcmac_rcv_rts_block(uint8_t trx, uint8_t ts, uint16_t arfcn, 
diff --git a/src/gprs_rlcmac_data.cpp b/src/gprs_rlcmac_data.cpp
index cd503f3..da7295b 100644
--- a/src/gprs_rlcmac_data.cpp
+++ b/src/gprs_rlcmac_data.cpp
@@ -114,8 +114,6 @@
 		}
 	} else
 	if (tbf->ul_ass_state == GPRS_RLCMAC_UL_ASS_WAIT_ACK) {
-		struct gprs_rlcmac_bts *bts = gprs_rlcmac_bts;
-
 		if (!(tbf->state_flags & (1 << GPRS_RLCMAC_FLAG_TO_UL_ASS))) {
 			LOGP(DRLCMAC, LOGL_NOTICE, "- Timeout for polling "
 				"PACKET CONTROL ACK for PACKET UPLINK "
@@ -137,8 +135,6 @@
 		tbf->ul_ass_state = GPRS_RLCMAC_UL_ASS_SEND_ASS;
 	} else
 	if (tbf->dl_ass_state == GPRS_RLCMAC_DL_ASS_WAIT_ACK) {
-		struct gprs_rlcmac_bts *bts = gprs_rlcmac_bts;
-
 		if (!(tbf->state_flags & (1 << GPRS_RLCMAC_FLAG_TO_DL_ASS))) {
 			LOGP(DRLCMAC, LOGL_NOTICE, "- Timeout for polling "
 				"PACKET CONTROL ACK for PACKET DOWNLINK "
@@ -160,8 +156,6 @@
 		tbf->dl_ass_state = GPRS_RLCMAC_DL_ASS_SEND_ASS;
 	} else
 	if (tbf->direction == GPRS_RLCMAC_DL_TBF) {
-		struct gprs_rlcmac_bts *bts = gprs_rlcmac_bts;
-
 		if (!(tbf->state_flags & (1 << GPRS_RLCMAC_FLAG_TO_DL_ACK))) {
 			LOGP(DRLCMAC, LOGL_NOTICE, "- Timeout for polling "
 				"PACKET DOWNLINK ACK.\n");
@@ -683,7 +677,8 @@
 	return 0;
 }
 
-struct msgb *gprs_rlcmac_send_uplink_ack(struct gprs_rlcmac_tbf *tbf,
+struct msgb *gprs_rlcmac_send_uplink_ack(struct gprs_rlcmac_bts *bts,
+	struct gprs_rlcmac_tbf *tbf,
 	uint32_t fn)
 {
 	int final = (tbf->state_is(GPRS_RLCMAC_FINISHED));
@@ -714,7 +709,7 @@
 	bitvec_unhex(ack_vec,
 		"2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b");
 	RlcMacDownlink_t * mac_control_block = (RlcMacDownlink_t *)talloc_zero(tall_pcu_ctx, RlcMacDownlink_t);
-	write_packet_uplink_ack(mac_control_block, tbf, final);
+	write_packet_uplink_ack(bts, mac_control_block, tbf, final);
 	encode_gsm_rlcmac_downlink(ack_vec, mac_control_block);
 	bitvec_pack(ack_vec, msgb_put(msg, 23));
 	bitvec_free(ack_vec);
diff --git a/src/gprs_rlcmac_sched.cpp b/src/gprs_rlcmac_sched.cpp
index 5456b99..de03e2e 100644
--- a/src/gprs_rlcmac_sched.cpp
+++ b/src/gprs_rlcmac_sched.cpp
@@ -121,7 +121,8 @@
 	return usf;
 }
 
-struct msgb *sched_select_ctrl_msg(uint8_t trx, uint8_t ts, uint32_t fn,
+static struct msgb *sched_select_ctrl_msg(struct gprs_rlcmac_bts *bts,
+		    uint8_t trx, uint8_t ts, uint32_t fn,
 		    uint8_t block_nr, struct gprs_rlcmac_pdch *pdch,
 		    struct gprs_rlcmac_tbf *ul_ass_tbf,
 		    struct gprs_rlcmac_tbf *dl_ass_tbf,
@@ -143,7 +144,7 @@
 	/* schedule PACKET UPLINK ACK (3rd priority) */
 	if (!msg && ul_ack_tbf) {
 		tbf = ul_ack_tbf;
-		msg = gprs_rlcmac_send_uplink_ack(tbf, fn);
+		msg = gprs_rlcmac_send_uplink_ack(bts, tbf, fn);
 	}
 	/* any message */
 	if (msg) {
@@ -270,7 +271,7 @@
 		usf = sched_select_uplink(trx, ts, fn, block_nr, pdch);
 
 	/* Prio 1: select control message */
-	msg = sched_select_ctrl_msg(trx, ts, fn, block_nr, pdch, ul_ass_tbf,
+	msg = sched_select_ctrl_msg(bts, trx, ts, fn, block_nr, pdch, ul_ass_tbf,
 		dl_ass_tbf, ul_ack_tbf);
 
 	/* Prio 2: select data message for downlink */