CC: [email protected]
BCC: [email protected]
CC: [email protected]
TO: Mike Christie <[email protected]>
CC: "Martin K. Petersen" <[email protected]>
CC: Lee Duncan <[email protected]>
CC: Chris Leech <[email protected]>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 
master
head:   b2d229d4ddb17db541098b83524d901257e93845
commit: 44ac97109e42f87b1a34954704b81b6c8eca80c4 scsi: iscsi: Fix NOP handling 
during conn recovery
date:   6 days ago
:::::: branch date: 13 hours ago
:::::: commit date: 6 days ago
config: x86_64-randconfig-m001-20220418 
(https://download.01.org/0day-ci/archive/20220418/[email protected]/config)
compiler: gcc-11 (Debian 11.2.0-19) 11.2.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/scsi/libiscsi.c:682 __iscsi_conn_send_pdu() warn: test_bit() takes a 
bit number

Old smatch warnings:
drivers/scsi/libiscsi.c:1396 iscsi_set_conn_failed() warn: test_bit() takes a 
bit number
drivers/scsi/libiscsi.c:1397 iscsi_set_conn_failed() warn: test_bit() takes a 
bit number
drivers/scsi/libiscsi.c:1458 iscsi_xmit_task() warn: test_bit() takes a bit 
number
drivers/scsi/libiscsi.c:1536 iscsi_data_xmit() warn: test_bit() takes a bit 
number
drivers/scsi/libiscsi.c:1750 iscsi_queuecommand() warn: test_bit() takes a bit 
number
drivers/scsi/libiscsi.c:1939 iscsi_suspend_queue() warn: test_bit() takes a bit 
number
drivers/scsi/libiscsi.c:1957 iscsi_suspend_tx() warn: test_bit() takes a bit 
number
drivers/scsi/libiscsi.c:1965 iscsi_start_tx() warn: test_bit() takes a bit 
number
drivers/scsi/libiscsi.c:2218 iscsi_conn_unbind() warn: test_bit() takes a bit 
number
drivers/scsi/libiscsi.c:3324 iscsi_conn_bind() warn: test_bit() takes a bit 
number
drivers/scsi/libiscsi.c:3337 iscsi_conn_bind() warn: test_bit() takes a bit 
number
drivers/scsi/libiscsi.c:3338 iscsi_conn_bind() warn: test_bit() takes a bit 
number

vim +682 drivers/scsi/libiscsi.c

052d014485d2ce Mike Christie    2008-05-21  670  
9c19a7d0387124 Mike Christie    2008-05-21  671  static struct iscsi_task *
f6d5180c78780d Mike Christie    2007-12-13  672  __iscsi_conn_send_pdu(struct 
iscsi_conn *conn, struct iscsi_hdr *hdr,
f6d5180c78780d Mike Christie    2007-12-13  673                       char 
*data, uint32_t data_size)
f6d5180c78780d Mike Christie    2007-12-13  674  {
f6d5180c78780d Mike Christie    2007-12-13  675         struct iscsi_session 
*session = conn->session;
1336aed10b8af7 Mike Christie    2009-05-13  676         struct iscsi_host 
*ihost = shost_priv(session->host);
4f704dc0329740 Mike Christie    2009-11-11  677         uint8_t opcode = 
hdr->opcode & ISCSI_OPCODE_MASK;
9c19a7d0387124 Mike Christie    2008-05-21  678         struct iscsi_task *task;
262ef63627977a Mike Christie    2008-12-02  679         itt_t itt;
f6d5180c78780d Mike Christie    2007-12-13  680  
44ac97109e42f8 Mike Christie    2022-04-07  681         if (session->state == 
ISCSI_STATE_TERMINATE ||
44ac97109e42f8 Mike Christie    2022-04-07 @682             
!test_bit(ISCSI_CONN_FLAG_BOUND, &conn->flags))
f6d5180c78780d Mike Christie    2007-12-13  683                 return NULL;
f6d5180c78780d Mike Christie    2007-12-13  684  
4f704dc0329740 Mike Christie    2009-11-11  685         if (opcode == 
ISCSI_OP_LOGIN || opcode == ISCSI_OP_TEXT) {
f6d5180c78780d Mike Christie    2007-12-13  686                 /*
f6d5180c78780d Mike Christie    2007-12-13  687                  * Login and 
Text are sent serially, in
f6d5180c78780d Mike Christie    2007-12-13  688                  * 
request-followed-by-response sequence.
3e5c28ad039138 Mike Christie    2008-05-21  689                  * Same task 
can be used. Same ITT must be used.
3e5c28ad039138 Mike Christie    2008-05-21  690                  * Note that 
login_task is preallocated at conn_create().
f6d5180c78780d Mike Christie    2007-12-13  691                  */
4f704dc0329740 Mike Christie    2009-11-11  692                 if 
(conn->login_task->state != ISCSI_TASK_FREE) {
4f704dc0329740 Mike Christie    2009-11-11  693                         
iscsi_conn_printk(KERN_ERR, conn, "Login/Text in "
4f704dc0329740 Mike Christie    2009-11-11  694                                 
          "progress. Cannot start new task.\n");
4f704dc0329740 Mike Christie    2009-11-11  695                         return 
NULL;
4f704dc0329740 Mike Christie    2009-11-11  696                 }
4f704dc0329740 Mike Christie    2009-11-11  697  
cbaa42213461e9 Mike Christie    2014-09-03  698                 if (data_size > 
ISCSI_DEF_MAX_RECV_SEG_LEN) {
cbaa42213461e9 Mike Christie    2014-09-03  699                         
iscsi_conn_printk(KERN_ERR, conn, "Invalid buffer len of %u for login task. Max 
len is %u\n", data_size, ISCSI_DEF_MAX_RECV_SEG_LEN);
cbaa42213461e9 Mike Christie    2014-09-03  700                         return 
NULL;
cbaa42213461e9 Mike Christie    2014-09-03  701                 }
cbaa42213461e9 Mike Christie    2014-09-03  702  
9c19a7d0387124 Mike Christie    2008-05-21  703                 task = 
conn->login_task;
4f704dc0329740 Mike Christie    2009-11-11  704         } else {
26013ad4c43f49 Mike Christie    2009-05-13  705                 if 
(session->state != ISCSI_STATE_LOGGED_IN)
26013ad4c43f49 Mike Christie    2009-05-13  706                         return 
NULL;
26013ad4c43f49 Mike Christie    2009-05-13  707  
cbaa42213461e9 Mike Christie    2014-09-03  708                 if (data_size 
!= 0) {
cbaa42213461e9 Mike Christie    2014-09-03  709                         
iscsi_conn_printk(KERN_ERR, conn, "Can not send data buffer of len %u for op 
0x%x\n", data_size, opcode);
cbaa42213461e9 Mike Christie    2014-09-03  710                         return 
NULL;
cbaa42213461e9 Mike Christie    2014-09-03  711                 }
cbaa42213461e9 Mike Christie    2014-09-03  712  
f6d5180c78780d Mike Christie    2007-12-13  713                 
BUG_ON(conn->c_stage == ISCSI_CONN_INITIAL_STAGE);
f6d5180c78780d Mike Christie    2007-12-13  714                 
BUG_ON(conn->c_stage == ISCSI_CONN_STOPPED);
f6d5180c78780d Mike Christie    2007-12-13  715  
7acd72eb85f1c7 Stefani Seibold  2009-12-21  716                 if 
(!kfifo_out(&session->cmdpool.queue,
9c19a7d0387124 Mike Christie    2008-05-21  717                                 
 (void*)&task, sizeof(void*)))
f6d5180c78780d Mike Christie    2007-12-13  718                         return 
NULL;
f6d5180c78780d Mike Christie    2007-12-13  719         }
3e5c28ad039138 Mike Christie    2008-05-21  720         /*
3e5c28ad039138 Mike Christie    2008-05-21  721          * released in complete 
pdu for task we expect a response for, and
3e5c28ad039138 Mike Christie    2008-05-21  722          * released by the lld 
when it has transmitted the task for
3e5c28ad039138 Mike Christie    2008-05-21  723          * pdus we do not 
expect a response for.
3e5c28ad039138 Mike Christie    2008-05-21  724          */
6dc618cdd6b896 Elena Reshetova  2017-03-09  725         
refcount_set(&task->refcount, 1);
9c19a7d0387124 Mike Christie    2008-05-21  726         task->conn = conn;
9c19a7d0387124 Mike Christie    2008-05-21  727         task->sc = NULL;
3bbaaad95fd38d Mike Christie    2009-05-13  728         
INIT_LIST_HEAD(&task->running);
3bbaaad95fd38d Mike Christie    2009-05-13  729         task->state = 
ISCSI_TASK_PENDING;
f6d5180c78780d Mike Christie    2007-12-13  730  
f6d5180c78780d Mike Christie    2007-12-13  731         if (data_size) {
9c19a7d0387124 Mike Christie    2008-05-21  732                 
memcpy(task->data, data, data_size);
9c19a7d0387124 Mike Christie    2008-05-21  733                 
task->data_count = data_size;
f6d5180c78780d Mike Christie    2007-12-13  734         } else
9c19a7d0387124 Mike Christie    2008-05-21  735                 
task->data_count = 0;
f6d5180c78780d Mike Christie    2007-12-13  736  
184b57c630c86d Mike Christie    2009-05-13  737         if 
(conn->session->tt->alloc_pdu) {
2ff79d52d56eeb Mike Christie    2008-12-02  738                 if 
(conn->session->tt->alloc_pdu(task, hdr->opcode)) {
577577da6d197e Mike Christie    2008-12-02  739                         
iscsi_conn_printk(KERN_ERR, conn, "Could not allocate "
577577da6d197e Mike Christie    2008-12-02  740                                 
         "pdu for mgmt task.\n");
3bbaaad95fd38d Mike Christie    2009-05-13  741                         goto 
free_task;
577577da6d197e Mike Christie    2008-12-02  742                 }
184b57c630c86d Mike Christie    2009-05-13  743         }
184b57c630c86d Mike Christie    2009-05-13  744  
262ef63627977a Mike Christie    2008-12-02  745         itt = task->hdr->itt;
577577da6d197e Mike Christie    2008-12-02  746         task->hdr_len = 
sizeof(struct iscsi_hdr);
9c19a7d0387124 Mike Christie    2008-05-21  747         memcpy(task->hdr, hdr, 
sizeof(struct iscsi_hdr));
262ef63627977a Mike Christie    2008-12-02  748  
262ef63627977a Mike Christie    2008-12-02  749         if (hdr->itt != 
RESERVED_ITT) {
262ef63627977a Mike Christie    2008-12-02  750                 if 
(session->tt->parse_pdu_itt)
262ef63627977a Mike Christie    2008-12-02  751                         
task->hdr->itt = itt;
262ef63627977a Mike Christie    2008-12-02  752                 else
262ef63627977a Mike Christie    2008-12-02  753                         
task->hdr->itt = build_itt(task->itt,
262ef63627977a Mike Christie    2008-12-02  754                                 
                   task->conn->session->age);
262ef63627977a Mike Christie    2008-12-02  755         }
262ef63627977a Mike Christie    2008-12-02  756  
fe0a8a95e7134d Lee Duncan       2020-11-06  757         if 
(unlikely(READ_ONCE(conn->ping_task) == INVALID_SCSI_TASK))
fe0a8a95e7134d Lee Duncan       2020-11-06  758                 
WRITE_ONCE(conn->ping_task, task);
fe0a8a95e7134d Lee Duncan       2020-11-06  759  
1336aed10b8af7 Mike Christie    2009-05-13  760         if (!ihost->workq) {
577577da6d197e Mike Christie    2008-12-02  761                 if 
(iscsi_prep_mgmt_task(conn, task))
577577da6d197e Mike Christie    2008-12-02  762                         goto 
free_task;
052d014485d2ce Mike Christie    2008-05-21  763  
9c19a7d0387124 Mike Christie    2008-05-21  764                 if 
(session->tt->xmit_task(task))
577577da6d197e Mike Christie    2008-12-02  765                         goto 
free_task;
3bbaaad95fd38d Mike Christie    2009-05-13  766         } else {
3bbaaad95fd38d Mike Christie    2009-05-13  767                 
list_add_tail(&task->running, &conn->mgmtqueue);
32ae763e3fce41 Mike Christie    2009-03-05  768                 
iscsi_conn_queue_work(conn);
3bbaaad95fd38d Mike Christie    2009-05-13  769         }
052d014485d2ce Mike Christie    2008-05-21  770  
9c19a7d0387124 Mike Christie    2008-05-21  771         return task;
577577da6d197e Mike Christie    2008-12-02  772  
577577da6d197e Mike Christie    2008-12-02  773  free_task:
659743b02c4110 Shlomo Pongratz  2014-02-07  774         /* regular RX path uses 
back_lock */
4fa507992f0a10 Jitendra Bhivare 2016-10-13  775         
spin_lock(&session->back_lock);
577577da6d197e Mike Christie    2008-12-02  776         __iscsi_put_task(task);
4fa507992f0a10 Jitendra Bhivare 2016-10-13  777         
spin_unlock(&session->back_lock);
577577da6d197e Mike Christie    2008-12-02  778         return NULL;
f6d5180c78780d Mike Christie    2007-12-13  779  }
f6d5180c78780d Mike Christie    2007-12-13  780  

-- 
0-DAY CI Kernel Test Service
https://01.org/lkp
_______________________________________________
kbuild mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to