diff options
author | Andreas Eversberg <jolly@eversberg.eu> | 2011-08-06 17:56:06 +0200 |
---|---|---|
committer | Andreas Eversberg <jolly@eversberg.eu> | 2011-08-06 17:56:06 +0200 |
commit | 210de12ec4ffa9a3ffc8a1cb81f60c30a834dee1 (patch) | |
tree | 371329b23cc754dc7768b96d93ace554ccca1cc4 /src/host/layer23/src/mobile/gsm48_mm.c | |
parent | 3b2b3b09a9ce8ff7d8fcfc3107172008a322372b (diff) |
Fix of wong Classmark 2 when doing CM Service Request.
Same reason as the commit below... (3b2b3b09a)
Thanx again to Dieter for pointing this out.
Diffstat (limited to 'src/host/layer23/src/mobile/gsm48_mm.c')
-rw-r--r-- | src/host/layer23/src/mobile/gsm48_mm.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/host/layer23/src/mobile/gsm48_mm.c b/src/host/layer23/src/mobile/gsm48_mm.c index ec393c2b..ff936e35 100644 --- a/src/host/layer23/src/mobile/gsm48_mm.c +++ b/src/host/layer23/src/mobile/gsm48_mm.c @@ -2753,6 +2753,8 @@ static int gsm48_mm_tx_cm_serv_req(struct osmocom_ms *ms, int rr_prim, uint8_t cm_serv) { struct gsm48_mmlayer *mm = &ms->mmlayer; + struct gsm48_rrlayer *rr = &ms->rrlayer; + struct gsm322_cellsel *cs = &ms->cellsel; struct gsm_subscriber *subscr = &ms->subscr; struct gsm_settings *set = &ms->settings; struct msgb *nmsg; @@ -2778,7 +2780,9 @@ static int gsm48_mm_tx_cm_serv_req(struct osmocom_ms *ms, int rr_prim, nsr->cipher_key_seq = subscr->key_seq; /* classmark 2 */ cm2lv[0] = sizeof(struct gsm48_classmark2); - gsm48_rr_enc_cm2(ms, (struct gsm48_classmark2 *)(cm2lv + 1)); + gsm48_rr_enc_cm2(ms, (struct gsm48_classmark2 *)(cm2lv + 1), + (rr_prim == GSM48_RR_EST_REQ) ? cs->sel_arfcn + : rr->cd_now.arfcn); /* MI */ if (mm->est_cause == RR_EST_CAUSE_EMERGENCY && set->emergency_imsi[0]) { LOGP(DMM, LOGL_INFO, "-> Using IMSI %s for emergency\n", |