CC: [email protected] CC: [email protected] TO: Bernard Metzler <[email protected]> CC: Jason Gunthorpe <[email protected]>
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master head: 08bf1a27c4c354b853fd81a79e953525bbcc8506 commit: c0cf5bdde46c664d583518addc19d6dabb6a8ec9 rdma/siw: addition to kernel build environment date: 12 months ago :::::: branch date: 37 minutes ago :::::: commit date: 12 months ago config: x86_64-randconfig-m001-20200614 (attached as .config) compiler: gcc-9 (Debian 9.3.0-13) 9.3.0 If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <[email protected]> Reported-by: Dan Carpenter <[email protected]> New smatch warnings: drivers/infiniband/sw/siw/siw_cm.c:436 siw_qp_cm_drop() error: double unlocked 'cep->lock' (orig line 386) drivers/infiniband/sw/siw/siw_cm.c:982 siw_accept_newconn() error: double unlocked 'new_cep->lock' (orig line 980) drivers/infiniband/sw/siw/siw_cm.c:1035 siw_cm_work_handler() error: double unlocked 'cep->listen_cep->lock' (orig line 1027) drivers/infiniband/sw/siw/siw_cm.c:1164 siw_cm_work_handler() error: double unlocked 'cep->lock' (orig line 1017) drivers/infiniband/sw/siw/siw_cm.c:1517 siw_connect() error: double unlocked 'cep->lock' (orig line 1427) drivers/infiniband/sw/siw/siw_cm.c:1589 siw_accept() error: double unlocked 'cep->lock' (orig line 1575) drivers/infiniband/sw/siw/siw_cm.c:1768 siw_reject() error: double unlocked 'cep->lock' (orig line 1760) drivers/infiniband/sw/siw/siw_cm.c:1936 siw_drop_listeners() error: double unlocked 'cep->lock' (orig line 1924) Old smatch warnings: drivers/infiniband/sw/siw/siw_cm.c:1000 siw_accept_newconn() error: we previously assumed 'new_cep' could be null (see line 994) drivers/infiniband/sw/siw/siw_cm.c:1169 siw_cm_work_handler() error: double unlocked 'cep->lock' (orig line 1164) drivers/infiniband/sw/siw/siw_cm.c:1184 siw_cm_work_handler() error: double unlocked 'cep->lock' (orig line 1017) drivers/infiniband/sw/siw/siw_cm.c:1522 siw_connect() error: we previously assumed 'qp' could be null (see line 1376) drivers/infiniband/sw/siw/siw_cm.c:1540 siw_connect() error: double unlocked 'cep->lock' (orig line 1427) drivers/infiniband/sw/siw/siw_cm.c:1597 siw_accept() error: double unlocked 'cep->lock' (orig line 1575) drivers/infiniband/sw/siw/siw_cm.c:1723 siw_accept() error: double unlocked 'cep->lock' (orig line 1575) drivers/infiniband/sw/siw/siw_cm.c:1744 siw_accept() error: double unlocked 'cep->lock' (orig line 1575) drivers/infiniband/sw/siw/siw_cm.c:1786 siw_reject() error: double unlocked 'cep->lock' (orig line 1760) drivers/infiniband/sw/siw/siw_cm.c:1900 siw_listen_address() error: double unlocked 'cep->lock' (orig line 1890) # https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=c0cf5bdde46c664d583518addc19d6dabb6a8ec9 git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git git remote update linus git checkout c0cf5bdde46c664d583518addc19d6dabb6a8ec9 vim +436 drivers/infiniband/sw/siw/siw_cm.c 6c52fdc244b5cc Bernard Metzler 2019-06-20 364 6c52fdc244b5cc Bernard Metzler 2019-06-20 365 /* 6c52fdc244b5cc Bernard Metzler 2019-06-20 366 * siw_qp_cm_drop() 6c52fdc244b5cc Bernard Metzler 2019-06-20 367 * 6c52fdc244b5cc Bernard Metzler 2019-06-20 368 * Drops established LLP connection if present and not already 6c52fdc244b5cc Bernard Metzler 2019-06-20 369 * scheduled for dropping. Called from user context, SQ workqueue 6c52fdc244b5cc Bernard Metzler 2019-06-20 370 * or receive IRQ. Caller signals if socket can be immediately 6c52fdc244b5cc Bernard Metzler 2019-06-20 371 * closed (basically, if not in IRQ). 6c52fdc244b5cc Bernard Metzler 2019-06-20 372 */ 6c52fdc244b5cc Bernard Metzler 2019-06-20 373 void siw_qp_cm_drop(struct siw_qp *qp, int schedule) 6c52fdc244b5cc Bernard Metzler 2019-06-20 374 { 6c52fdc244b5cc Bernard Metzler 2019-06-20 375 struct siw_cep *cep = qp->cep; 6c52fdc244b5cc Bernard Metzler 2019-06-20 376 6c52fdc244b5cc Bernard Metzler 2019-06-20 377 qp->rx_stream.rx_suspend = 1; 6c52fdc244b5cc Bernard Metzler 2019-06-20 378 qp->tx_ctx.tx_suspend = 1; 6c52fdc244b5cc Bernard Metzler 2019-06-20 379 6c52fdc244b5cc Bernard Metzler 2019-06-20 380 if (!qp->cep) 6c52fdc244b5cc Bernard Metzler 2019-06-20 381 return; 6c52fdc244b5cc Bernard Metzler 2019-06-20 382 6c52fdc244b5cc Bernard Metzler 2019-06-20 383 if (schedule) { 6c52fdc244b5cc Bernard Metzler 2019-06-20 384 siw_cm_queue_work(cep, SIW_CM_WORK_CLOSE_LLP); 6c52fdc244b5cc Bernard Metzler 2019-06-20 385 } else { 6c52fdc244b5cc Bernard Metzler 2019-06-20 @386 siw_cep_set_inuse(cep); 6c52fdc244b5cc Bernard Metzler 2019-06-20 387 6c52fdc244b5cc Bernard Metzler 2019-06-20 388 if (cep->state == SIW_EPSTATE_CLOSED) { 6c52fdc244b5cc Bernard Metzler 2019-06-20 389 siw_dbg_cep(cep, "already closed\n"); 6c52fdc244b5cc Bernard Metzler 2019-06-20 390 goto out; 6c52fdc244b5cc Bernard Metzler 2019-06-20 391 } 6c52fdc244b5cc Bernard Metzler 2019-06-20 392 siw_dbg_cep(cep, "immediate close, state %d\n", cep->state); 6c52fdc244b5cc Bernard Metzler 2019-06-20 393 6c52fdc244b5cc Bernard Metzler 2019-06-20 394 if (qp->term_info.valid) 6c52fdc244b5cc Bernard Metzler 2019-06-20 395 siw_send_terminate(qp); 6c52fdc244b5cc Bernard Metzler 2019-06-20 396 6c52fdc244b5cc Bernard Metzler 2019-06-20 397 if (cep->cm_id) { 6c52fdc244b5cc Bernard Metzler 2019-06-20 398 switch (cep->state) { 6c52fdc244b5cc Bernard Metzler 2019-06-20 399 case SIW_EPSTATE_AWAIT_MPAREP: 6c52fdc244b5cc Bernard Metzler 2019-06-20 400 siw_cm_upcall(cep, IW_CM_EVENT_CONNECT_REPLY, 6c52fdc244b5cc Bernard Metzler 2019-06-20 401 -EINVAL); 6c52fdc244b5cc Bernard Metzler 2019-06-20 402 break; 6c52fdc244b5cc Bernard Metzler 2019-06-20 403 6c52fdc244b5cc Bernard Metzler 2019-06-20 404 case SIW_EPSTATE_RDMA_MODE: 6c52fdc244b5cc Bernard Metzler 2019-06-20 405 siw_cm_upcall(cep, IW_CM_EVENT_CLOSE, 0); 6c52fdc244b5cc Bernard Metzler 2019-06-20 406 break; 6c52fdc244b5cc Bernard Metzler 2019-06-20 407 6c52fdc244b5cc Bernard Metzler 2019-06-20 408 case SIW_EPSTATE_IDLE: 6c52fdc244b5cc Bernard Metzler 2019-06-20 409 case SIW_EPSTATE_LISTENING: 6c52fdc244b5cc Bernard Metzler 2019-06-20 410 case SIW_EPSTATE_CONNECTING: 6c52fdc244b5cc Bernard Metzler 2019-06-20 411 case SIW_EPSTATE_AWAIT_MPAREQ: 6c52fdc244b5cc Bernard Metzler 2019-06-20 412 case SIW_EPSTATE_RECVD_MPAREQ: 6c52fdc244b5cc Bernard Metzler 2019-06-20 413 case SIW_EPSTATE_CLOSED: 6c52fdc244b5cc Bernard Metzler 2019-06-20 414 default: 6c52fdc244b5cc Bernard Metzler 2019-06-20 415 break; 6c52fdc244b5cc Bernard Metzler 2019-06-20 416 } 6c52fdc244b5cc Bernard Metzler 2019-06-20 417 cep->cm_id->rem_ref(cep->cm_id); 6c52fdc244b5cc Bernard Metzler 2019-06-20 418 cep->cm_id = NULL; 6c52fdc244b5cc Bernard Metzler 2019-06-20 419 siw_cep_put(cep); 6c52fdc244b5cc Bernard Metzler 2019-06-20 420 } 6c52fdc244b5cc Bernard Metzler 2019-06-20 421 cep->state = SIW_EPSTATE_CLOSED; 6c52fdc244b5cc Bernard Metzler 2019-06-20 422 6c52fdc244b5cc Bernard Metzler 2019-06-20 423 if (cep->sock) { 6c52fdc244b5cc Bernard Metzler 2019-06-20 424 siw_socket_disassoc(cep->sock); 6c52fdc244b5cc Bernard Metzler 2019-06-20 425 /* 6c52fdc244b5cc Bernard Metzler 2019-06-20 426 * Immediately close socket 6c52fdc244b5cc Bernard Metzler 2019-06-20 427 */ 6c52fdc244b5cc Bernard Metzler 2019-06-20 428 sock_release(cep->sock); 6c52fdc244b5cc Bernard Metzler 2019-06-20 429 cep->sock = NULL; 6c52fdc244b5cc Bernard Metzler 2019-06-20 430 } 6c52fdc244b5cc Bernard Metzler 2019-06-20 431 if (cep->qp) { 6c52fdc244b5cc Bernard Metzler 2019-06-20 432 cep->qp = NULL; 6c52fdc244b5cc Bernard Metzler 2019-06-20 433 siw_qp_put(qp); 6c52fdc244b5cc Bernard Metzler 2019-06-20 434 } 6c52fdc244b5cc Bernard Metzler 2019-06-20 435 out: 6c52fdc244b5cc Bernard Metzler 2019-06-20 @436 siw_cep_set_free(cep); 6c52fdc244b5cc Bernard Metzler 2019-06-20 437 } 6c52fdc244b5cc Bernard Metzler 2019-06-20 438 } 6c52fdc244b5cc Bernard Metzler 2019-06-20 439 :::::: The code at line 436 was first introduced by commit :::::: 6c52fdc244b5ccc468006fd65a504d4ee33743c7 rdma/siw: connection management :::::: TO: Bernard Metzler <[email protected]> :::::: CC: Jason Gunthorpe <[email protected]> --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/[email protected]
.config.gz
Description: application/gzip
_______________________________________________ kbuild mailing list -- [email protected] To unsubscribe send an email to [email protected]
