tbf_ul_fm: Allow receiving event TBF_EV_MAX_N3105 in state RELEASING

Change-Id: I8560293d7b0f3bfefc1641208196404bc4848bfd
diff --git a/src/tbf_ul_fsm.c b/src/tbf_ul_fsm.c
index 571c689..a7d24ec 100644
--- a/src/tbf_ul_fsm.c
+++ b/src/tbf_ul_fsm.c
@@ -279,7 +279,15 @@
 
 static void st_releasing(struct osmo_fsm_inst *fi, uint32_t event, void *data)
 {
-	OSMO_ASSERT(0);
+	switch (event) {
+	case TBF_EV_MAX_N3105:
+		/* This may be received here if the TBF had several polls
+		 * allocated concurrently and several failed each increasing N3105
+		 * over MAX_N3015. We are already releasing, ignore.*/
+		break;
+	default:
+		OSMO_ASSERT(0);
+	}
 }
 
 static int tbf_ul_fsm_timer_cb(struct osmo_fsm_inst *fi)
@@ -351,7 +359,8 @@
 		.action = st_finished,
 	},
 	[TBF_ST_RELEASING] = {
-		.in_event_mask = 0,
+		.in_event_mask =
+			X(TBF_EV_MAX_N3105),
 		.out_state_mask =
 			0,
 		.name = "RELEASING",