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]

Attachment: .config.gz
Description: application/gzip

_______________________________________________
kbuild mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to