hodec2: apply penalty_low_rxqual_as only on assignment
The penalty timer low_rxqual_as() is only supposed to apply on an intra-cell re-assignment. However, a segfault has been reported that apparently applies it to inter-BSC handover. Make sure that this timer applies only to re-assignment. In effect this makes sure that the target bts is non-NULL and avoids the segfault. Related: OS#5525 Change-Id: Ifdb9891fbe7e3f3423a96371def4fcbf2fc0bc0d
This commit is contained in:
parent
249700add7
commit
c68096c2c3
|
@ -1448,7 +1448,8 @@ static int find_alternative_lchan(struct gsm_lchan *lchan, bool include_weaker_r
|
|||
|
||||
/* After upgrading TCH/H to TCH/F due to bad RxQual, start penalty timer to avoid re-assignment within
|
||||
* the same cell again, to avoid oscillation from RxQual noise combined with congestion resolution. */
|
||||
if (!rc && is_upgrade_to_tchf(best_cand, REQUIREMENT_A_MASK)) {
|
||||
if (!rc && best_cand->target.bts == best_cand->current.bts
|
||||
&& is_upgrade_to_tchf(best_cand, REQUIREMENT_A_MASK)) {
|
||||
struct gsm0808_cell_id bts_id;
|
||||
gsm_bts_cell_id(&bts_id, best_cand->target.bts);
|
||||
penalty_timers_add(lchan->conn, &lchan->conn->hodec2.penalty_timers, &bts_id,
|
||||
|
|
Loading…
Reference in New Issue