[tip:master 26/52] drivers/staging/rtl8188eu/core/rtw_ap.c:445:1: internal compiler error: in change_address_1, at emit-rtl.c:1928

From: kbuild test robot
Date: Sat Aug 12 2017 - 21:16:52 EST


tree: https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git master
head: 9f8f2e094230a70372026b237890dc438be83bd8
commit: b09be676e0ff25bd6d2e7637e26d349f9109ad75 [26/52] locking/lockdep: Implement the 'crossrelease' feature
config: xtensa-allmodconfig (attached as .config)
compiler: xtensa-linux-gcc (GCC) 4.9.0
reproduce:
wget https://raw.githubusercontent.com/01org/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
git checkout b09be676e0ff25bd6d2e7637e26d349f9109ad75
# save the attached .config to linux build tree
make.cross ARCH=xtensa

All errors (new ones prefixed by >>):

drivers/staging/rtl8188eu/core/rtw_ap.c: In function 'expire_timeout_chk':
>> drivers/staging/rtl8188eu/core/rtw_ap.c:445:1: internal compiler error: in change_address_1, at emit-rtl.c:1928
}
^
0x61e86c change_address_1
/home/tony/buildall/src/gcc/gcc/emit-rtl.c:1928
0x61ed31 adjust_address_1(rtx_def*, machine_mode, long, int, int, int, long)
/home/tony/buildall/src/gcc/gcc/emit-rtl.c:2060
0xa1971e xtensa_split_operand_pair(rtx_def**, machine_mode)
/home/tony/buildall/src/gcc/gcc/config/xtensa/xtensa.c:1002
0xa2074c gen_split_78(rtx_def*, rtx_def**)
/home/tony/buildall/src/gcc/gcc/config/xtensa/xtensa.md:781
0x61d9f1 try_split(rtx_def*, rtx_def*, int)
/home/tony/buildall/src/gcc/gcc/emit-rtl.c:3440
0x7bab61 split_insn
/home/tony/buildall/src/gcc/gcc/recog.c:2884
0x7bae19 split_all_insns()
/home/tony/buildall/src/gcc/gcc/recog.c:2974
0x7baed2 rest_of_handle_split_after_reload
/home/tony/buildall/src/gcc/gcc/recog.c:3923
0x7baed2 execute
/home/tony/buildall/src/gcc/gcc/recog.c:3952
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See <http://gcc.gnu.org/bugs.html> for instructions.

vim +445 drivers/staging/rtl8188eu/core/rtw_ap.c

9a7fe54dd Larry Finger 2013-08-21 278
9a7fe54dd Larry Finger 2013-08-21 279 void expire_timeout_chk(struct adapter *padapter)
9a7fe54dd Larry Finger 2013-08-21 280 {
9a7fe54dd Larry Finger 2013-08-21 281 struct list_head *phead, *plist;
9a7fe54dd Larry Finger 2013-08-21 282 u8 updated = 0;
9a7fe54dd Larry Finger 2013-08-21 283 struct sta_info *psta = NULL;
9a7fe54dd Larry Finger 2013-08-21 284 struct sta_priv *pstapriv = &padapter->stapriv;
9a7fe54dd Larry Finger 2013-08-21 285 u8 chk_alive_num = 0;
9a7fe54dd Larry Finger 2013-08-21 286 char chk_alive_list[NUM_STA];
9a7fe54dd Larry Finger 2013-08-21 287 int i;
9a7fe54dd Larry Finger 2013-08-21 288
7057dcb3a Larry Finger 2013-12-19 289 spin_lock_bh(&pstapriv->auth_list_lock);
9a7fe54dd Larry Finger 2013-08-21 290
9a7fe54dd Larry Finger 2013-08-21 291 phead = &pstapriv->auth_list;
c44e5e39c Larry Finger 2014-02-09 292 plist = phead->next;
9a7fe54dd Larry Finger 2013-08-21 293
9a7fe54dd Larry Finger 2013-08-21 294 /* check auth_queue */
846607008 navin patidar 2014-06-22 295 while (phead != plist) {
bea881004 Larry Finger 2014-02-09 296 psta = container_of(plist, struct sta_info, auth_list);
c44e5e39c Larry Finger 2014-02-09 297 plist = plist->next;
9a7fe54dd Larry Finger 2013-08-21 298
9a7fe54dd Larry Finger 2013-08-21 299 if (psta->expire_to > 0) {
9a7fe54dd Larry Finger 2013-08-21 300 psta->expire_to--;
9a7fe54dd Larry Finger 2013-08-21 301 if (psta->expire_to == 0) {
8d5bdece4 navin patidar 2014-06-22 302 list_del_init(&psta->auth_list);
9a7fe54dd Larry Finger 2013-08-21 303 pstapriv->auth_list_cnt--;
9a7fe54dd Larry Finger 2013-08-21 304
9a7fe54dd Larry Finger 2013-08-21 305 DBG_88E("auth expire %6ph\n",
9a7fe54dd Larry Finger 2013-08-21 306 psta->hwaddr);
9a7fe54dd Larry Finger 2013-08-21 307
e02bcf612 Larry Finger 2013-12-19 308 spin_unlock_bh(&pstapriv->auth_list_lock);
9a7fe54dd Larry Finger 2013-08-21 309
8943880ef Scott Matheina 2017-01-05 310 spin_lock_bh(&pstapriv->sta_hash_lock);
9a7fe54dd Larry Finger 2013-08-21 311 rtw_free_stainfo(padapter, psta);
8943880ef Scott Matheina 2017-01-05 312 spin_unlock_bh(&pstapriv->sta_hash_lock);
9a7fe54dd Larry Finger 2013-08-21 313
7057dcb3a Larry Finger 2013-12-19 314 spin_lock_bh(&pstapriv->auth_list_lock);
9a7fe54dd Larry Finger 2013-08-21 315 }
9a7fe54dd Larry Finger 2013-08-21 316 }
9a7fe54dd Larry Finger 2013-08-21 317
9a7fe54dd Larry Finger 2013-08-21 318 }
e02bcf612 Larry Finger 2013-12-19 319 spin_unlock_bh(&pstapriv->auth_list_lock);
9a7fe54dd Larry Finger 2013-08-21 320
9a7fe54dd Larry Finger 2013-08-21 321 psta = NULL;
9a7fe54dd Larry Finger 2013-08-21 322
7057dcb3a Larry Finger 2013-12-19 323 spin_lock_bh(&pstapriv->asoc_list_lock);
9a7fe54dd Larry Finger 2013-08-21 324
9a7fe54dd Larry Finger 2013-08-21 325 phead = &pstapriv->asoc_list;
c44e5e39c Larry Finger 2014-02-09 326 plist = phead->next;
9a7fe54dd Larry Finger 2013-08-21 327
9a7fe54dd Larry Finger 2013-08-21 328 /* check asoc_queue */
846607008 navin patidar 2014-06-22 329 while (phead != plist) {
bea881004 Larry Finger 2014-02-09 330 psta = container_of(plist, struct sta_info, asoc_list);
c44e5e39c Larry Finger 2014-02-09 331 plist = plist->next;
9a7fe54dd Larry Finger 2013-08-21 332
9a7fe54dd Larry Finger 2013-08-21 333 if (chk_sta_is_alive(psta) || !psta->expire_to) {
9a7fe54dd Larry Finger 2013-08-21 334 psta->expire_to = pstapriv->expire_to;
9a7fe54dd Larry Finger 2013-08-21 335 psta->keep_alive_trycnt = 0;
9a7fe54dd Larry Finger 2013-08-21 336 psta->under_exist_checking = 0;
9a7fe54dd Larry Finger 2013-08-21 337 } else {
9a7fe54dd Larry Finger 2013-08-21 338 psta->expire_to--;
9a7fe54dd Larry Finger 2013-08-21 339 }
9a7fe54dd Larry Finger 2013-08-21 340
9a7fe54dd Larry Finger 2013-08-21 341 if (psta->expire_to <= 0) {
9a7fe54dd Larry Finger 2013-08-21 342 struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
9a7fe54dd Larry Finger 2013-08-21 343
9a7fe54dd Larry Finger 2013-08-21 344 if (padapter->registrypriv.wifi_spec == 1) {
9a7fe54dd Larry Finger 2013-08-21 345 psta->expire_to = pstapriv->expire_to;
9a7fe54dd Larry Finger 2013-08-21 346 continue;
9a7fe54dd Larry Finger 2013-08-21 347 }
9a7fe54dd Larry Finger 2013-08-21 348
9a7fe54dd Larry Finger 2013-08-21 349 if (psta->state & WIFI_SLEEP_STATE) {
9a7fe54dd Larry Finger 2013-08-21 350 if (!(psta->state & WIFI_STA_ALIVE_CHK_STATE)) {
0a36d5fbd Jagan Teki 2015-05-18 351 /* to check if alive by another methods
0a36d5fbd Jagan Teki 2015-05-18 352 * if station is at ps mode.
0a36d5fbd Jagan Teki 2015-05-18 353 */
9a7fe54dd Larry Finger 2013-08-21 354 psta->expire_to = pstapriv->expire_to;
9a7fe54dd Larry Finger 2013-08-21 355 psta->state |= WIFI_STA_ALIVE_CHK_STATE;
9a7fe54dd Larry Finger 2013-08-21 356
0a36d5fbd Jagan Teki 2015-05-18 357 /* to update bcn with tim_bitmap
0a36d5fbd Jagan Teki 2015-05-18 358 * for this station
0a36d5fbd Jagan Teki 2015-05-18 359 */
9a7fe54dd Larry Finger 2013-08-21 360 pstapriv->tim_bitmap |= BIT(psta->aid);
945cd4726 Scott Matheina 2017-01-05 361 update_beacon(padapter, _TIM_IE_, NULL,
945cd4726 Scott Matheina 2017-01-05 362 false);
9a7fe54dd Larry Finger 2013-08-21 363
9a7fe54dd Larry Finger 2013-08-21 364 if (!pmlmeext->active_keep_alive_check)
9a7fe54dd Larry Finger 2013-08-21 365 continue;
9a7fe54dd Larry Finger 2013-08-21 366 }
9a7fe54dd Larry Finger 2013-08-21 367 }
9a7fe54dd Larry Finger 2013-08-21 368 if (pmlmeext->active_keep_alive_check) {
9a7fe54dd Larry Finger 2013-08-21 369 int stainfo_offset;
9a7fe54dd Larry Finger 2013-08-21 370
249472588 Sreenath Madasu 2015-07-08 371 stainfo_offset =
249472588 Sreenath Madasu 2015-07-08 372 rtw_stainfo_offset(pstapriv, psta);
9a7fe54dd Larry Finger 2013-08-21 373 if (stainfo_offset_valid(stainfo_offset))
9a7fe54dd Larry Finger 2013-08-21 374 chk_alive_list[chk_alive_num++] = stainfo_offset;
9a7fe54dd Larry Finger 2013-08-21 375 continue;
9a7fe54dd Larry Finger 2013-08-21 376 }
9a7fe54dd Larry Finger 2013-08-21 377
8d5bdece4 navin patidar 2014-06-22 378 list_del_init(&psta->asoc_list);
9a7fe54dd Larry Finger 2013-08-21 379 pstapriv->asoc_list_cnt--;
9a7fe54dd Larry Finger 2013-08-21 380
9a7fe54dd Larry Finger 2013-08-21 381 DBG_88E("asoc expire %pM, state = 0x%x\n", (psta->hwaddr), psta->state);
9a7fe54dd Larry Finger 2013-08-21 382 updated = ap_free_sta(padapter, psta, true, WLAN_REASON_DEAUTH_LEAVING);
9a7fe54dd Larry Finger 2013-08-21 383 } else {
9a7fe54dd Larry Finger 2013-08-21 384 /* TODO: Aging mechanism to digest frames in sleep_q to avoid running out of xmitframe */
9a7fe54dd Larry Finger 2013-08-21 385 if (psta->sleepq_len > (NR_XMITFRAME / pstapriv->asoc_list_cnt) &&
9a7fe54dd Larry Finger 2013-08-21 386 padapter->xmitpriv.free_xmitframe_cnt < (NR_XMITFRAME / pstapriv->asoc_list_cnt / 2)) {
9a7fe54dd Larry Finger 2013-08-21 387 DBG_88E("%s sta:%pM, sleepq_len:%u, free_xmitframe_cnt:%u, asoc_list_cnt:%u, clear sleep_q\n", __func__,
9a7fe54dd Larry Finger 2013-08-21 388 (psta->hwaddr), psta->sleepq_len,
9a7fe54dd Larry Finger 2013-08-21 389 padapter->xmitpriv.free_xmitframe_cnt,
9a7fe54dd Larry Finger 2013-08-21 390 pstapriv->asoc_list_cnt);
9a7fe54dd Larry Finger 2013-08-21 391 wakeup_sta_to_xmit(padapter, psta);
9a7fe54dd Larry Finger 2013-08-21 392 }
9a7fe54dd Larry Finger 2013-08-21 393 }
9a7fe54dd Larry Finger 2013-08-21 394 }
9a7fe54dd Larry Finger 2013-08-21 395
e02bcf612 Larry Finger 2013-12-19 396 spin_unlock_bh(&pstapriv->asoc_list_lock);
9a7fe54dd Larry Finger 2013-08-21 397
9a7fe54dd Larry Finger 2013-08-21 398 if (chk_alive_num) {
9a7fe54dd Larry Finger 2013-08-21 399 u8 backup_oper_channel = 0;
9a7fe54dd Larry Finger 2013-08-21 400 struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
9a7fe54dd Larry Finger 2013-08-21 401 /* switch to correct channel of current network before issue keep-alive frames */
9a7fe54dd Larry Finger 2013-08-21 402 if (rtw_get_oper_ch(padapter) != pmlmeext->cur_channel) {
9a7fe54dd Larry Finger 2013-08-21 403 backup_oper_channel = rtw_get_oper_ch(padapter);
9a7fe54dd Larry Finger 2013-08-21 404 SelectChannel(padapter, pmlmeext->cur_channel);
9a7fe54dd Larry Finger 2013-08-21 405 }
9a7fe54dd Larry Finger 2013-08-21 406
9a7fe54dd Larry Finger 2013-08-21 407 /* issue null data to check sta alive*/
9a7fe54dd Larry Finger 2013-08-21 408 for (i = 0; i < chk_alive_num; i++) {
9a7fe54dd Larry Finger 2013-08-21 409 int ret = _FAIL;
9a7fe54dd Larry Finger 2013-08-21 410
9a7fe54dd Larry Finger 2013-08-21 411 psta = rtw_get_stainfo_by_offset(pstapriv, chk_alive_list[i]);
9a7fe54dd Larry Finger 2013-08-21 412
9a7fe54dd Larry Finger 2013-08-21 413 if (psta->state & WIFI_SLEEP_STATE)
9a7fe54dd Larry Finger 2013-08-21 414 ret = issue_nulldata(padapter, psta->hwaddr, 0, 1, 50);
9a7fe54dd Larry Finger 2013-08-21 415 else
9a7fe54dd Larry Finger 2013-08-21 416 ret = issue_nulldata(padapter, psta->hwaddr, 0, 3, 50);
9a7fe54dd Larry Finger 2013-08-21 417
9a7fe54dd Larry Finger 2013-08-21 418 psta->keep_alive_trycnt++;
9a7fe54dd Larry Finger 2013-08-21 419 if (ret == _SUCCESS) {
9a7fe54dd Larry Finger 2013-08-21 420 DBG_88E("asoc check, sta(%pM) is alive\n", (psta->hwaddr));
9a7fe54dd Larry Finger 2013-08-21 421 psta->expire_to = pstapriv->expire_to;
9a7fe54dd Larry Finger 2013-08-21 422 psta->keep_alive_trycnt = 0;
9a7fe54dd Larry Finger 2013-08-21 423 continue;
9a7fe54dd Larry Finger 2013-08-21 424 } else if (psta->keep_alive_trycnt <= 3) {
9a7fe54dd Larry Finger 2013-08-21 425 DBG_88E("ack check for asoc expire, keep_alive_trycnt =%d\n", psta->keep_alive_trycnt);
9a7fe54dd Larry Finger 2013-08-21 426 psta->expire_to = 1;
9a7fe54dd Larry Finger 2013-08-21 427 continue;
9a7fe54dd Larry Finger 2013-08-21 428 }
9a7fe54dd Larry Finger 2013-08-21 429
9a7fe54dd Larry Finger 2013-08-21 430 psta->keep_alive_trycnt = 0;
9a7fe54dd Larry Finger 2013-08-21 431
9a7fe54dd Larry Finger 2013-08-21 432 DBG_88E("asoc expire %pM, state = 0x%x\n", (psta->hwaddr), psta->state);
7057dcb3a Larry Finger 2013-12-19 433 spin_lock_bh(&pstapriv->asoc_list_lock);
8d5bdece4 navin patidar 2014-06-22 434 list_del_init(&psta->asoc_list);
9a7fe54dd Larry Finger 2013-08-21 435 pstapriv->asoc_list_cnt--;
9a7fe54dd Larry Finger 2013-08-21 436 updated = ap_free_sta(padapter, psta, true, WLAN_REASON_DEAUTH_LEAVING);
e02bcf612 Larry Finger 2013-12-19 437 spin_unlock_bh(&pstapriv->asoc_list_lock);
9a7fe54dd Larry Finger 2013-08-21 438 }
9a7fe54dd Larry Finger 2013-08-21 439
9a7fe54dd Larry Finger 2013-08-21 440 if (backup_oper_channel > 0) /* back to the original operation channel */
9a7fe54dd Larry Finger 2013-08-21 441 SelectChannel(padapter, backup_oper_channel);
9a7fe54dd Larry Finger 2013-08-21 442 }
9a7fe54dd Larry Finger 2013-08-21 443
9a7fe54dd Larry Finger 2013-08-21 444 associated_clients_update(padapter, updated);
9a7fe54dd Larry Finger 2013-08-21 @445 }
9a7fe54dd Larry Finger 2013-08-21 446

:::::: The code at line 445 was first introduced by commit
:::::: 9a7fe54ddc3a70a25a773cb1e275cb7f7d2c6526 staging: r8188eu: Add source files for new driver - part 1

:::::: TO: Larry Finger <Larry.Finger@xxxxxxxxxxxx>
:::::: CC: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>

---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation

Attachment: .config.gz
Description: application/gzip