Expect ms object to exist before calling tbf_alloc_dl_tbf()

Same as previous commit, this time for the DL counterpart.

Change-Id: I87f6cdf8288a688466020bda0874e68b57aa71c4
diff --git a/src/tbf_dl.cpp b/src/tbf_dl.cpp
index 4e8966e..591f460 100644
--- a/src/tbf_dl.cpp
+++ b/src/tbf_dl.cpp
@@ -146,10 +146,12 @@
 
 	/* check for uplink data, so we copy our informations */
 	ms = bts->bts->ms_store().get_ms(tlli, tlli_old, imsi);
-	if (ms) {
-		ul_tbf = ms->ul_tbf();
-		ta = ms->ta();
-	}
+	if (!ms)
+		ms = bts->bts->ms_alloc(ms_class, egprs_ms_class); /* ms class updated later */
+
+	ul_tbf = ms->ul_tbf();
+	ta = ms->ta();
+
 	/* TODO: if (!ms) create MS before tbf_alloc is called? */
 
 	if (ul_tbf && ul_tbf->m_contention_resolution_done
@@ -166,7 +168,7 @@
 	// Create new TBF (any TRX)
 /* FIXME: Copy and paste with alloc_ul_tbf */
 	/* set number of downlink slots according to multislot class */
-	dl_tbf = tbf_alloc_dl_tbf(bts, ms, use_trx, ms_class, egprs_ms_class, ss);
+	dl_tbf = tbf_alloc_dl_tbf(bts, ms, use_trx, ss);
 
 	if (!dl_tbf) {
 		LOGP(DTBF, LOGL_NOTICE, "No PDCH resource\n");