Fix Ericsson RBS2000 support after libosmo-abis merge

The libosmo-abis merge broke Ericsson RBS support, as it didn't get the
part right where the per-TRX OML sign_link is determined while
transmitting OM2000 messages.

As a result of this fix, we can remove the 'to_trx_oml' parameter to
_abis_nm_sendmsg(), which is a nice cleanup.
diff --git a/openbsc/include/openbsc/abis_nm.h b/openbsc/include/openbsc/abis_nm.h
index f11ac11..ae9b999 100644
--- a/openbsc/include/openbsc/abis_nm.h
+++ b/openbsc/include/openbsc/abis_nm.h
@@ -160,7 +160,7 @@
 
 void abis_nm_clear_queue(struct gsm_bts *bts);
 
-int _abis_nm_sendmsg(struct msgb *msg, int to_trx_oml);
+int _abis_nm_sendmsg(struct msgb *msg);
 
 void abis_nm_queue_send_next(struct gsm_bts *bts);	/* for bs11_config. */
 
diff --git a/openbsc/src/libbsc/abis_nm.c b/openbsc/src/libbsc/abis_nm.c
index 027a263..a01826b 100644
--- a/openbsc/src/libbsc/abis_nm.c
+++ b/openbsc/src/libbsc/abis_nm.c
@@ -114,10 +114,8 @@
 				   "OML");
 }
 
-int _abis_nm_sendmsg(struct msgb *msg, int to_trx_oml)
+int _abis_nm_sendmsg(struct msgb *msg)
 {
-	struct e1inp_sign_link *sign_link = msg->dst;
-
 	msg->l2h = msg->data;
 
 	if (!msg->dst) {
@@ -125,12 +123,6 @@
 		return -EINVAL;
 	}
 
-	/* Check for TRX-specific OML link first */
-	if (to_trx_oml) {
-		if (!sign_link->trx->oml_link)
-			return -ENODEV;
-		msg->dst = sign_link->trx->oml_link;
-	}
 	return abis_sendmsg(msg);
 }
 
@@ -142,7 +134,7 @@
 	/* queue OML messages */
 	if (llist_empty(&bts->abis_queue) && !bts->abis_nm_pend) {
 		bts->abis_nm_pend = OBSC_NM_W_ACK_CB(msg);
-		return _abis_nm_sendmsg(msg, 0);
+		return _abis_nm_sendmsg(msg);
 	} else {
 		msgb_enqueue(&bts->abis_queue, msg);
 		return 0;
@@ -508,7 +500,7 @@
 	while (!llist_empty(&bts->abis_queue)) {
 		msg = msgb_dequeue(&bts->abis_queue);
 		wait = OBSC_NM_W_ACK_CB(msg);
-		_abis_nm_sendmsg(msg, 0);
+		_abis_nm_sendmsg(msg);
 
 		if (wait)
 			break;
diff --git a/openbsc/src/libbsc/abis_om2000.c b/openbsc/src/libbsc/abis_om2000.c
index 2216462..e2e0578 100644
--- a/openbsc/src/libbsc/abis_om2000.c
+++ b/openbsc/src/libbsc/abis_om2000.c
@@ -799,8 +799,8 @@
 
 static int abis_om2k_sendmsg(struct gsm_bts *bts, struct msgb *msg)
 {
-	struct e1inp_sign_link *sign_link = (struct e1inp_sign_link *)msg;
 	struct abis_om2k_hdr *o2h;
+	struct gsm_bts_trx *trx;
 	int to_trx_oml;
 
 	msg->l2h = msg->data;
@@ -814,9 +814,8 @@
 	case OM2K_MO_CLS_TX:
 	case OM2K_MO_CLS_RX:
 		/* Route through per-TRX OML Link to the appropriate TRX */
-		to_trx_oml = 1;
-		sign_link->trx = gsm_bts_trx_by_nr(bts, o2h->mo.inst);
-		if (!sign_link->trx) {
+		trx = gsm_bts_trx_by_nr(bts, o2h->mo.inst);
+		if (!trx) {
 			LOGP(DNM, LOGL_ERROR, "MO=%s Tx Dropping msg to "
 				"non-existing TRX\n", om2k_mo_name(&o2h->mo));
 			return -ENODEV;
@@ -824,9 +823,8 @@
 		break;
 	case OM2K_MO_CLS_TS:
 		/* Route through per-TRX OML Link to the appropriate TRX */
-		to_trx_oml = 1;
-		sign_link->trx = gsm_bts_trx_by_nr(bts, o2h->mo.assoc_so);
-		if (!sign_link->trx) {
+		trx = gsm_bts_trx_by_nr(bts, o2h->mo.assoc_so);
+		if (!trx) {
 			LOGP(DNM, LOGL_ERROR, "MO=%s Tx Dropping msg to "
 				"non-existing TRX\n", om2k_mo_name(&o2h->mo));
 			return -ENODEV;
@@ -834,12 +832,12 @@
 		break;
 	default:
 		/* Route through the IXU/DXU OML Link */
-		sign_link->trx = bts->c0;
-		to_trx_oml = 0;
+		trx = bts->c0;
 		break;
 	}
+	msg->dst = trx->oml_link;
 
-	return _abis_nm_sendmsg(msg, to_trx_oml);
+	return _abis_nm_sendmsg(msg);
 }
 
 static void fill_om2k_hdr(struct abis_om2k_hdr *o2h, const struct abis_om2k_mo *mo,