lchan: Every SS_LCHAN signal now sends a struct lchan_sig_data

The SS_LCHAN signals now always include the lchan_sig_data. For
the measurement report it will optionally include the measurement
report as well. Attempt to update all handlers of this signal as well
diff --git a/openbsc/src/bsc_api.c b/openbsc/src/bsc_api.c
index 8b3ff8f..9b070a9 100644
--- a/openbsc/src/bsc_api.c
+++ b/openbsc/src/bsc_api.c
@@ -602,28 +602,17 @@
 {
 	struct bsc_api *bsc;
 	struct gsm_lchan *lchan;
+	struct lchan_signal_data *lchan_data;
 
 	if (subsys != SS_LCHAN)
 		return 0;
 
-	/*
-	 * Check if it is any of the signals we handle. We do want
-	 * to do this early as we will need to check the lchan and
-	 * the bsc api in it.
-	 */
-	switch (signal) {
-	case S_LCHAN_UNEXPECTED_RELEASE:
-	case S_LCHAN_ACTIVATE_ACK:
-	case S_LCHAN_ACTIVATE_NACK:
-		break;
-	default:
-		return -1;
-	}
 
-	lchan = (struct gsm_lchan *)signal_data;
-	if (!lchan || !lchan->conn)
+	lchan_data = signal_data;
+	if (!lchan_data->lchan || !lchan_data->lchan->conn)
 		return 0;
 
+	lchan = lchan_data->lchan;
 	bsc = lchan->ts->trx->bts->network->bsc_api;
 	if (!bsc)
 		return 0;