sms: Use the SMS in the signals where it makes sense.

The signal_data was inconsistent. Sometimes we passed the transaction
and sometimes we passed the sms. Change it to always pass the sms. The
S_SMS_SMMA is a bit special as it does not involve any SMS.
diff --git a/openbsc/src/gsm_04_11.c b/openbsc/src/gsm_04_11.c
index f418004..65688f5 100644
--- a/openbsc/src/gsm_04_11.c
+++ b/openbsc/src/gsm_04_11.c
@@ -809,7 +809,7 @@
 		/* MS has not enough memory to store the message.  We need
 		 * to store this in our database and wait for a SMMA message */
 		/* FIXME */
-		dispatch_signal(SS_SMS, S_SMS_MEM_EXCEEDED, trans->subscr);
+		dispatch_signal(SS_SMS, S_SMS_MEM_EXCEEDED, sms);
 		counter_inc(net->stats.sms.rp_err_mem);
 	} else
 		counter_inc(net->stats.sms.rp_err_other);
@@ -832,7 +832,7 @@
 	/* MS tells us that it has memory for more SMS, we need
 	 * to check if we have any pending messages for it and then
 	 * transfer those */
-	dispatch_signal(SS_SMS, S_SMS_SMMA, trans->subscr);
+	dispatch_signal(SS_SMS, S_SMS_SMMA, trans);
 
 	/* check for more messages for this subscriber */
 	sms = db_sms_get_unsent_for_subscr(trans->subscr);