/* Repeat initial/next rate.
                 * For legacy IL_NUMBER_TRY == 1, this loop will not execute.
                 * For HT IL_HT_NUMBER_TRY == 3, this executes twice. */
-               while (repeat_rate > 0) {
+               while (repeat_rate > 0 && idx < (LINK_QUAL_MAX_RETRY_NUM - 1)) {
                        if (is_legacy(tbl_type.lq_type)) {
                                if (ant_toggle_cnt < NUM_TRY_BEFORE_ANT_TOGGLE)
                                        ant_toggle_cnt++;
                            cpu_to_le32(new_rate);
                        repeat_rate--;
                        idx++;
-                       if (idx >= LINK_QUAL_MAX_RETRY_NUM)
-                               goto out;
                }
 
                il4965_rs_get_tbl_info_from_mcs(new_rate, lq_sta->band,
                repeat_rate--;
        }
 
-out:
        lq_cmd->agg_params.agg_frame_cnt_limit = LINK_QUAL_AGG_FRAME_LIMIT_DEF;
        lq_cmd->agg_params.agg_dis_start_th = LINK_QUAL_AGG_DISABLE_START_DEF;