gprs_gmm: gsm48_rx_gmm_att_req(): refactor duplicated code

Change-Id: I709f847802a975e1a75d0b87ac5125240cfd0854
diff --git a/src/gprs/gprs_gmm.c b/src/gprs/gprs_gmm.c
index 185cd9a..00335e8 100644
--- a/src/gprs/gprs_gmm.c
+++ b/src/gprs/gprs_gmm.c
@@ -1460,11 +1460,6 @@
 			}
 			osmo_strlcpy(ctx->imsi, mi_string, sizeof(ctx->imsi));
 		}
-		if (ctx->ran_type == MM_CTX_T_GERAN_Gb) {
-			ctx->gb.tlli = msgb_tlli(msg);
-			ctx->gb.llme = llme;
-		}
-		msgid2mmctx(ctx, msg);
 		break;
 	case GSM_MI_TYPE_TMSI:
 		memcpy(&tmsi, mi+1, 4);
@@ -1485,11 +1480,6 @@
 			}
 			ctx->p_tmsi = tmsi;
 		}
-		if (ctx->ran_type == MM_CTX_T_GERAN_Gb) {
-			ctx->gb.tlli = msgb_tlli(msg);
-			ctx->gb.llme = llme;
-		}
-		msgid2mmctx(ctx, msg);
 		break;
 	default:
 		LOGMMCTXP(LOGL_NOTICE, ctx, "Rejecting ATTACH REQUEST with "
@@ -1497,6 +1487,12 @@
 		reject_cause = GMM_CAUSE_MS_ID_NOT_DERIVED;
 		goto rejected;
 	}
+
+	if (ctx->ran_type == MM_CTX_T_GERAN_Gb) {
+		ctx->gb.tlli = msgb_tlli(msg);
+		ctx->gb.llme = llme;
+	}
+	msgid2mmctx(ctx, msg);
 	/* Update MM Context with currient RA and Cell ID */
 	ctx->ra = ra_id;
 	if (ctx->ran_type == MM_CTX_T_GERAN_Gb)