On Mon, Nov 17, 2014 at 11:36:37AM +0300, Dan Carpenter wrote: > Fengguang, this seems to be a very old version of linux-next?
It's 3 days ago, the HEAD commit is commit d7e5a72b951a4ef6d97b2aa43cad37f237ba8030 Author: Stephen Rothwell <[email protected]> AuthorDate: Fri Nov 14 19:23:08 2014 +1100 Commit: Stephen Rothwell <[email protected]> CommitDate: Fri Nov 14 19:23:08 2014 +1100 Add linux-next specific files for 20141114 Signed-off-by: Stephen Rothwell <[email protected]> Thanks, Fengguang > On Sat, Nov 15, 2014 at 07:32:54AM +0800, kbuild test robot wrote: > > TO: Karl Beldan <[email protected]> > > CC: Johannes Berg <[email protected]> > > > > tree: git://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git > > master > > head: d7e5a72b951a4ef6d97b2aa43cad37f237ba8030 > > commit: d4d141cae804a430054f4138fa177229114f203a [1093/6788] mac80211: > > minstrel_ht: Increase the range of handled rate indexes > > :::::: branch date: 15 hours ago > > :::::: commit date: 4 weeks ago > > > > net/mac80211/rc80211_minstrel_ht.c:255 minstrel_ht_sort_best_tp_rates() > > error: buffer overflow 'tp_list' 2 <= 3 > > net/mac80211/rc80211_minstrel_ht.c:256 minstrel_ht_sort_best_tp_rates() > > error: buffer overflow 'tp_list' 2 <= 3 > > net/mac80211/rc80211_minstrel_ht.c:270 minstrel_ht_sort_best_tp_rates() > > warn: buffer overflow 'tp_list' 2 <= 2 > > net/mac80211/rc80211_minstrel_ht.c:274 minstrel_ht_sort_best_tp_rates() > > error: buffer overflow 'tp_list' 2 <= 3 > > net/mac80211/rc80211_minstrel_ht.c:340 minstrel_ht_assign_best_tp_rates() > > error: buffer overflow 'tmp_cck_tp_rate' 2 <= 3 > > > > git remote add next > > git://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git > > git remote update next > > git checkout d4d141cae804a430054f4138fa177229114f203a > > vim +/tp_list +255 net/mac80211/rc80211_minstrel_ht.c > > > > 5935839a Thomas Huehn 2014-09-09 249 > > 5935839a Thomas Huehn 2014-09-09 250 cur_group = index / > > MCS_GROUP_RATES; > > 5935839a Thomas Huehn 2014-09-09 251 cur_idx = index % > > MCS_GROUP_RATES; > > 5935839a Thomas Huehn 2014-09-09 252 cur_thr = > > mi->groups[cur_group].rates[cur_idx].cur_tp; > > 5935839a Thomas Huehn 2014-09-09 253 cur_prob = > > mi->groups[cur_group].rates[cur_idx].probability; > > 5935839a Thomas Huehn 2014-09-09 254 > > 5935839a Thomas Huehn 2014-09-09 @255 tmp_group = tp_list[j - 1] / > > MCS_GROUP_RATES; > > 5935839a Thomas Huehn 2014-09-09 @256 tmp_idx = tp_list[j - 1] % > > MCS_GROUP_RATES; > > 5935839a Thomas Huehn 2014-09-09 257 tmp_thr = > > mi->groups[tmp_group].rates[tmp_idx].cur_tp; > > 5935839a Thomas Huehn 2014-09-09 258 tmp_prob = > > mi->groups[tmp_group].rates[tmp_idx].probability; > > 5935839a Thomas Huehn 2014-09-09 259 > > 5935839a Thomas Huehn 2014-09-09 260 while (j > 0 && (cur_thr > > > tmp_thr || > > 5935839a Thomas Huehn 2014-09-09 261 (cur_thr == tmp_thr && > > cur_prob > tmp_prob))) { > > 5935839a Thomas Huehn 2014-09-09 262 j--; > > 5935839a Thomas Huehn 2014-09-09 263 tmp_group = tp_list[j - > > 1] / MCS_GROUP_RATES; > > 5935839a Thomas Huehn 2014-09-09 264 tmp_idx = tp_list[j - > > 1] % MCS_GROUP_RATES; > > 5935839a Thomas Huehn 2014-09-09 265 tmp_thr = > > mi->groups[tmp_group].rates[tmp_idx].cur_tp; > > 5935839a Thomas Huehn 2014-09-09 266 tmp_prob = > > mi->groups[tmp_group].rates[tmp_idx].probability; > > 5935839a Thomas Huehn 2014-09-09 267 } > > 5935839a Thomas Huehn 2014-09-09 268 > > 5935839a Thomas Huehn 2014-09-09 269 if (j < MAX_THR_RATES - 1) { > > 5935839a Thomas Huehn 2014-09-09 @270 memmove(&tp_list[j + > > 1], &tp_list[j], (sizeof(*tp_list) * > > 5935839a Thomas Huehn 2014-09-09 271 (MAX_THR_RATES - > > (j + 1)))); > > 5935839a Thomas Huehn 2014-09-09 272 } > > 5935839a Thomas Huehn 2014-09-09 273 if (j < MAX_THR_RATES) > > 5935839a Thomas Huehn 2014-09-09 @274 tp_list[j] = index; > > 5935839a Thomas Huehn 2014-09-09 275 } > > 5935839a Thomas Huehn 2014-09-09 276 > > 5935839a Thomas Huehn 2014-09-09 277 /* > > 5935839a Thomas Huehn 2014-09-09 278 * Find and set the topmost > > probability rate per sta and per group > > 5935839a Thomas Huehn 2014-09-09 279 */ > > 5935839a Thomas Huehn 2014-09-09 280 static void > > d4d141ca Karl Beldan 2014-10-20 281 > > minstrel_ht_set_best_prob_rate(struct minstrel_ht_sta *mi, u16 index) > > 5935839a Thomas Huehn 2014-09-09 282 { > > 5935839a Thomas Huehn 2014-09-09 283 struct minstrel_mcs_group_data > > *mg; > > 5935839a Thomas Huehn 2014-09-09 284 struct minstrel_rate_stats *mr; > > 5935839a Thomas Huehn 2014-09-09 285 int tmp_group, tmp_idx, tmp_tp, > > tmp_prob, max_tp_group; > > 5935839a Thomas Huehn 2014-09-09 286 > > 5935839a Thomas Huehn 2014-09-09 287 mg = &mi->groups[index / > > MCS_GROUP_RATES]; > > 5935839a Thomas Huehn 2014-09-09 288 mr = &mg->rates[index % > > MCS_GROUP_RATES]; > > 5935839a Thomas Huehn 2014-09-09 289 > > 5935839a Thomas Huehn 2014-09-09 290 tmp_group = mi->max_prob_rate / > > MCS_GROUP_RATES; > > 5935839a Thomas Huehn 2014-09-09 291 tmp_idx = mi->max_prob_rate % > > MCS_GROUP_RATES; > > 5935839a Thomas Huehn 2014-09-09 292 tmp_tp = > > mi->groups[tmp_group].rates[tmp_idx].cur_tp; > > 5935839a Thomas Huehn 2014-09-09 293 tmp_prob = > > mi->groups[tmp_group].rates[tmp_idx].probability; > > 5935839a Thomas Huehn 2014-09-09 294 > > 5935839a Thomas Huehn 2014-09-09 295 /* if max_tp_rate[0] is from > > MCS_GROUP max_prob_rate get selected from > > 5935839a Thomas Huehn 2014-09-09 296 * MCS_GROUP as well as > > CCK_GROUP rates do not allow aggregation */ > > 5935839a Thomas Huehn 2014-09-09 297 max_tp_group = > > mi->max_tp_rate[0] / MCS_GROUP_RATES; > > 5935839a Thomas Huehn 2014-09-09 298 if((index / MCS_GROUP_RATES == > > MINSTREL_CCK_GROUP) && > > 5935839a Thomas Huehn 2014-09-09 299 (max_tp_group != > > MINSTREL_CCK_GROUP)) > > 5935839a Thomas Huehn 2014-09-09 300 return; > > 5935839a Thomas Huehn 2014-09-09 301 > > 5935839a Thomas Huehn 2014-09-09 302 if (mr->probability > > > MINSTREL_FRAC(75, 100)) { > > 5935839a Thomas Huehn 2014-09-09 303 if (mr->cur_tp > tmp_tp) > > 5935839a Thomas Huehn 2014-09-09 304 > > mi->max_prob_rate = index; > > 5935839a Thomas Huehn 2014-09-09 305 if (mr->cur_tp > > > mg->rates[mg->max_group_prob_rate].cur_tp) > > 5935839a Thomas Huehn 2014-09-09 306 > > mg->max_group_prob_rate = index; > > 5935839a Thomas Huehn 2014-09-09 307 } else { > > 5935839a Thomas Huehn 2014-09-09 308 if (mr->probability > > > tmp_prob) > > 5935839a Thomas Huehn 2014-09-09 309 > > mi->max_prob_rate = index; > > 5935839a Thomas Huehn 2014-09-09 310 if (mr->probability > > > mg->rates[mg->max_group_prob_rate].probability) > > 5935839a Thomas Huehn 2014-09-09 311 > > mg->max_group_prob_rate = index; > > 5935839a Thomas Huehn 2014-09-09 312 } > > 5935839a Thomas Huehn 2014-09-09 313 } > > 5935839a Thomas Huehn 2014-09-09 314 > > 5935839a Thomas Huehn 2014-09-09 315 > > 5935839a Thomas Huehn 2014-09-09 316 /* > > 5935839a Thomas Huehn 2014-09-09 317 * Assign new rate set per sta and > > use CCK rates only if the fastest > > 5935839a Thomas Huehn 2014-09-09 318 * rate (max_tp_rate[0]) is from CCK > > group. This prohibits such sorted > > 5935839a Thomas Huehn 2014-09-09 319 * rate sets where MCS and CCK rates > > are mixed, because CCK rates can > > 5935839a Thomas Huehn 2014-09-09 320 * not use aggregation. > > 5935839a Thomas Huehn 2014-09-09 321 */ > > 5935839a Thomas Huehn 2014-09-09 322 static void > > 5935839a Thomas Huehn 2014-09-09 323 > > minstrel_ht_assign_best_tp_rates(struct minstrel_ht_sta *mi, > > d4d141ca Karl Beldan 2014-10-20 324 u16 > > tmp_mcs_tp_rate[MAX_THR_RATES], > > d4d141ca Karl Beldan 2014-10-20 325 u16 > > tmp_cck_tp_rate[MAX_THR_RATES]) > > 5935839a Thomas Huehn 2014-09-09 326 { > > 5935839a Thomas Huehn 2014-09-09 327 unsigned int tmp_group, > > tmp_idx, tmp_cck_tp, tmp_mcs_tp; > > 5935839a Thomas Huehn 2014-09-09 328 int i; > > 5935839a Thomas Huehn 2014-09-09 329 > > 5935839a Thomas Huehn 2014-09-09 330 tmp_group = tmp_cck_tp_rate[0] > > / MCS_GROUP_RATES; > > 5935839a Thomas Huehn 2014-09-09 331 tmp_idx = tmp_cck_tp_rate[0] % > > MCS_GROUP_RATES; > > 5935839a Thomas Huehn 2014-09-09 332 tmp_cck_tp = > > mi->groups[tmp_group].rates[tmp_idx].cur_tp; > > 5935839a Thomas Huehn 2014-09-09 333 > > 5935839a Thomas Huehn 2014-09-09 334 tmp_group = tmp_mcs_tp_rate[0] > > / MCS_GROUP_RATES; > > 5935839a Thomas Huehn 2014-09-09 335 tmp_idx = tmp_mcs_tp_rate[0] % > > MCS_GROUP_RATES; > > 5935839a Thomas Huehn 2014-09-09 336 tmp_mcs_tp = > > mi->groups[tmp_group].rates[tmp_idx].cur_tp; > > 5935839a Thomas Huehn 2014-09-09 337 > > 5935839a Thomas Huehn 2014-09-09 338 if (tmp_cck_tp > tmp_mcs_tp) { > > 5935839a Thomas Huehn 2014-09-09 339 for(i = 0; i < > > MAX_THR_RATES; i++) { > > 5935839a Thomas Huehn 2014-09-09 @340 > > minstrel_ht_sort_best_tp_rates(mi, tmp_cck_tp_rate[i], > > 5935839a Thomas Huehn 2014-09-09 341 > > tmp_mcs_tp_rate); > > 5935839a Thomas Huehn 2014-09-09 342 } > > 5935839a Thomas Huehn 2014-09-09 343 } > > > > :::::: The code at line 255 was first introduced by commit > > :::::: 5935839ad73583781b8bbe8d91412f6826e218a4 mac80211: improve > > minstrel_ht rate sorting by throughput & probability > > > > :::::: TO: Thomas Huehn <[email protected]> > > :::::: CC: Johannes Berg <[email protected]> > > > > --- > > 0-DAY kernel test infrastructure Open Source Technology > > Center > > http://lists.01.org/mailman/listinfo/kbuild Intel > > Corporation _______________________________________________ kbuild mailing list [email protected] https://lists.01.org/mailman/listinfo/kbuild
