CC: [email protected]
TO: Christoph Hellwig <[email protected]>

tree:   git://git.infradead.org/users/hch/misc.git remove-scsi_request
head:   d8fd889c4c1f73165ec38da54e2c10bfe795686b
commit: 17cfefd0e27007b007c4650e76537805abfe18ed [4/8] scsi: remove the cmd 
field from struct scsi_request
:::::: branch date: 16 hours ago
:::::: commit date: 16 hours ago
config: riscv-randconfig-m031-20220211 
(https://download.01.org/0day-ci/archive/20220211/[email protected]/config)
compiler: riscv32-linux-gcc (GCC) 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]>

smatch warnings:
drivers/scsi/scsi_logging.c:90 scmd_printk() warn: this array is probably 
non-NULL. 'scmd->cmnd'
drivers/scsi/scsi_logging.c:186 scsi_print_command() warn: this array is 
probably non-NULL. 'cmd->cmnd'

vim +90 drivers/scsi/scsi_logging.c

ded85c193a391a8 Hannes Reinecke   2015-01-08   82  
9c4a6b1e4280134 Hannes Reinecke   2015-02-04   83  void scmd_printk(const char 
*level, const struct scsi_cmnd *scmd,
ded85c193a391a8 Hannes Reinecke   2015-01-08   84               const char 
*fmt, ...)
ded85c193a391a8 Hannes Reinecke   2015-01-08   85  {
ded85c193a391a8 Hannes Reinecke   2015-01-08   86       va_list args;
ded85c193a391a8 Hannes Reinecke   2015-01-08   87       char *logbuf;
ded85c193a391a8 Hannes Reinecke   2015-01-08   88       size_t off = 0, 
logbuf_len;
ded85c193a391a8 Hannes Reinecke   2015-01-08   89  
ded85c193a391a8 Hannes Reinecke   2015-01-08  @90       if (!scmd || 
!scmd->cmnd)
9c4a6b1e4280134 Hannes Reinecke   2015-02-04   91               return;
ded85c193a391a8 Hannes Reinecke   2015-01-08   92  
ded85c193a391a8 Hannes Reinecke   2015-01-08   93       logbuf = 
scsi_log_reserve_buffer(&logbuf_len);
ded85c193a391a8 Hannes Reinecke   2015-01-08   94       if (!logbuf)
9c4a6b1e4280134 Hannes Reinecke   2015-02-04   95               return;
2104551969e8011 Hannes Reinecke   2015-01-08   96       off = 
sdev_format_header(logbuf, logbuf_len, scmd_name(scmd),
aa8e25e5006aac5 Bart Van Assche   2021-08-09   97                               
 scsi_cmd_to_rq((struct scsi_cmnd *)scmd)->tag);
9e5ed2a5b3662c6 Hannes Reinecke   2015-01-08   98       if (off < logbuf_len) {
ded85c193a391a8 Hannes Reinecke   2015-01-08   99               va_start(args, 
fmt);
ded85c193a391a8 Hannes Reinecke   2015-01-08  100               off += 
vscnprintf(logbuf + off, logbuf_len - off, fmt, args);
ded85c193a391a8 Hannes Reinecke   2015-01-08  101               va_end(args);
9e5ed2a5b3662c6 Hannes Reinecke   2015-01-08  102       }
9c4a6b1e4280134 Hannes Reinecke   2015-02-04  103       dev_printk(level, 
&scmd->device->sdev_gendev, "%s", logbuf);
ded85c193a391a8 Hannes Reinecke   2015-01-08  104       
scsi_log_release_buffer(logbuf);
ded85c193a391a8 Hannes Reinecke   2015-01-08  105  }
ded85c193a391a8 Hannes Reinecke   2015-01-08  106  EXPORT_SYMBOL(scmd_printk);
9e5ed2a5b3662c6 Hannes Reinecke   2015-01-08  107  
9e5ed2a5b3662c6 Hannes Reinecke   2015-01-08  108  static size_t 
scsi_format_opcode_name(char *buffer, size_t buf_len,
9e5ed2a5b3662c6 Hannes Reinecke   2015-01-08  109                               
      const unsigned char *cdbp)
9e5ed2a5b3662c6 Hannes Reinecke   2015-01-08  110  {
9e5ed2a5b3662c6 Hannes Reinecke   2015-01-08  111       int sa, cdb0;
9e5ed2a5b3662c6 Hannes Reinecke   2015-01-08  112       const char *cdb_name = 
NULL, *sa_name = NULL;
9e5ed2a5b3662c6 Hannes Reinecke   2015-01-08  113       size_t off;
9e5ed2a5b3662c6 Hannes Reinecke   2015-01-08  114  
9e5ed2a5b3662c6 Hannes Reinecke   2015-01-08  115       cdb0 = cdbp[0];
9e5ed2a5b3662c6 Hannes Reinecke   2015-01-08  116       if (cdb0 == 
VARIABLE_LENGTH_CMD) {
9e5ed2a5b3662c6 Hannes Reinecke   2015-01-08  117               int len = 
scsi_varlen_cdb_length(cdbp);
9e5ed2a5b3662c6 Hannes Reinecke   2015-01-08  118  
9e5ed2a5b3662c6 Hannes Reinecke   2015-01-08  119               if (len < 10) {
9e5ed2a5b3662c6 Hannes Reinecke   2015-01-08  120                       off = 
scnprintf(buffer, buf_len,
9e5ed2a5b3662c6 Hannes Reinecke   2015-01-08  121                               
        "short variable length command, len=%d",
9e5ed2a5b3662c6 Hannes Reinecke   2015-01-08  122                               
        len);
9e5ed2a5b3662c6 Hannes Reinecke   2015-01-08  123                       return 
off;
9e5ed2a5b3662c6 Hannes Reinecke   2015-01-08  124               }
9e5ed2a5b3662c6 Hannes Reinecke   2015-01-08  125               sa = (cdbp[8] 
<< 8) + cdbp[9];
9e5ed2a5b3662c6 Hannes Reinecke   2015-01-08  126       } else
9e5ed2a5b3662c6 Hannes Reinecke   2015-01-08  127               sa = cdbp[1] & 
0x1f;
9e5ed2a5b3662c6 Hannes Reinecke   2015-01-08  128  
9e5ed2a5b3662c6 Hannes Reinecke   2015-01-08  129       if 
(!scsi_opcode_sa_name(cdb0, sa, &cdb_name, &sa_name)) {
9e5ed2a5b3662c6 Hannes Reinecke   2015-01-08  130               if (cdb_name)
9e5ed2a5b3662c6 Hannes Reinecke   2015-01-08  131                       off = 
scnprintf(buffer, buf_len, "%s", cdb_name);
9e5ed2a5b3662c6 Hannes Reinecke   2015-01-08  132               else {
9e5ed2a5b3662c6 Hannes Reinecke   2015-01-08  133                       off = 
scnprintf(buffer, buf_len, "opcode=0x%x", cdb0);
9e5ed2a5b3662c6 Hannes Reinecke   2015-01-08  134                       if 
(WARN_ON(off >= buf_len))
9e5ed2a5b3662c6 Hannes Reinecke   2015-01-08  135                               
return off;
9e5ed2a5b3662c6 Hannes Reinecke   2015-01-08  136                       if 
(cdb0 >= VENDOR_SPECIFIC_CDB)
9e5ed2a5b3662c6 Hannes Reinecke   2015-01-08  137                               
off += scnprintf(buffer + off, buf_len - off,
9e5ed2a5b3662c6 Hannes Reinecke   2015-01-08  138                               
                 " (vendor)");
9e5ed2a5b3662c6 Hannes Reinecke   2015-01-08  139                       else if 
(cdb0 >= 0x60 && cdb0 < 0x7e)
9e5ed2a5b3662c6 Hannes Reinecke   2015-01-08  140                               
off += scnprintf(buffer + off, buf_len - off,
9e5ed2a5b3662c6 Hannes Reinecke   2015-01-08  141                               
                 " (reserved)");
9e5ed2a5b3662c6 Hannes Reinecke   2015-01-08  142               }
9e5ed2a5b3662c6 Hannes Reinecke   2015-01-08  143       } else {
9e5ed2a5b3662c6 Hannes Reinecke   2015-01-08  144               if (sa_name)
9e5ed2a5b3662c6 Hannes Reinecke   2015-01-08  145                       off = 
scnprintf(buffer, buf_len, "%s", sa_name);
9e5ed2a5b3662c6 Hannes Reinecke   2015-01-08  146               else if 
(cdb_name)
9e5ed2a5b3662c6 Hannes Reinecke   2015-01-08  147                       off = 
scnprintf(buffer, buf_len, "%s, sa=0x%x",
9e5ed2a5b3662c6 Hannes Reinecke   2015-01-08  148                               
        cdb_name, sa);
9e5ed2a5b3662c6 Hannes Reinecke   2015-01-08  149               else
9e5ed2a5b3662c6 Hannes Reinecke   2015-01-08  150                       off = 
scnprintf(buffer, buf_len,
9e5ed2a5b3662c6 Hannes Reinecke   2015-01-08  151                               
        "opcode=0x%x, sa=0x%x", cdb0, sa);
9e5ed2a5b3662c6 Hannes Reinecke   2015-01-08  152       }
9e5ed2a5b3662c6 Hannes Reinecke   2015-01-08  153       WARN_ON(off >= buf_len);
9e5ed2a5b3662c6 Hannes Reinecke   2015-01-08  154       return off;
9e5ed2a5b3662c6 Hannes Reinecke   2015-01-08  155  }
9e5ed2a5b3662c6 Hannes Reinecke   2015-01-08  156  
9e5ed2a5b3662c6 Hannes Reinecke   2015-01-08  157  size_t 
__scsi_format_command(char *logbuf, size_t logbuf_len,
9e5ed2a5b3662c6 Hannes Reinecke   2015-01-08  158                            
const unsigned char *cdb, size_t cdb_len)
9e5ed2a5b3662c6 Hannes Reinecke   2015-01-08  159  {
9e5ed2a5b3662c6 Hannes Reinecke   2015-01-08  160       int len, k;
9e5ed2a5b3662c6 Hannes Reinecke   2015-01-08  161       size_t off;
9e5ed2a5b3662c6 Hannes Reinecke   2015-01-08  162  
9e5ed2a5b3662c6 Hannes Reinecke   2015-01-08  163       off = 
scsi_format_opcode_name(logbuf, logbuf_len, cdb);
9e5ed2a5b3662c6 Hannes Reinecke   2015-01-08  164       if (off >= logbuf_len)
9e5ed2a5b3662c6 Hannes Reinecke   2015-01-08  165               return off;
9e5ed2a5b3662c6 Hannes Reinecke   2015-01-08  166       len = 
scsi_command_size(cdb);
9e5ed2a5b3662c6 Hannes Reinecke   2015-01-08  167       if (cdb_len < len)
9e5ed2a5b3662c6 Hannes Reinecke   2015-01-08  168               len = cdb_len;
9e5ed2a5b3662c6 Hannes Reinecke   2015-01-08  169       /* print out all bytes 
in cdb */
9e5ed2a5b3662c6 Hannes Reinecke   2015-01-08  170       for (k = 0; k < len; 
++k) {
9e5ed2a5b3662c6 Hannes Reinecke   2015-01-08  171               if (off > 
logbuf_len - 3)
9e5ed2a5b3662c6 Hannes Reinecke   2015-01-08  172                       break;
9e5ed2a5b3662c6 Hannes Reinecke   2015-01-08  173               off += 
scnprintf(logbuf + off, logbuf_len - off,
9e5ed2a5b3662c6 Hannes Reinecke   2015-01-08  174                               
 " %02x", cdb[k]);
9e5ed2a5b3662c6 Hannes Reinecke   2015-01-08  175       }
9e5ed2a5b3662c6 Hannes Reinecke   2015-01-08  176       return off;
9e5ed2a5b3662c6 Hannes Reinecke   2015-01-08  177  }
9e5ed2a5b3662c6 Hannes Reinecke   2015-01-08  178  
EXPORT_SYMBOL(__scsi_format_command);
9e5ed2a5b3662c6 Hannes Reinecke   2015-01-08  179  
9e5ed2a5b3662c6 Hannes Reinecke   2015-01-08  180  void 
scsi_print_command(struct scsi_cmnd *cmd)
9e5ed2a5b3662c6 Hannes Reinecke   2015-01-08  181  {
9e5ed2a5b3662c6 Hannes Reinecke   2015-01-08  182       int k;
9e5ed2a5b3662c6 Hannes Reinecke   2015-01-08  183       char *logbuf;
9e5ed2a5b3662c6 Hannes Reinecke   2015-01-08  184       size_t off, logbuf_len;
9e5ed2a5b3662c6 Hannes Reinecke   2015-01-08  185  
9e5ed2a5b3662c6 Hannes Reinecke   2015-01-08 @186       if (!cmd->cmnd)
9e5ed2a5b3662c6 Hannes Reinecke   2015-01-08  187               return;
9e5ed2a5b3662c6 Hannes Reinecke   2015-01-08  188  
9e5ed2a5b3662c6 Hannes Reinecke   2015-01-08  189       logbuf = 
scsi_log_reserve_buffer(&logbuf_len);
9e5ed2a5b3662c6 Hannes Reinecke   2015-01-08  190       if (!logbuf)
9e5ed2a5b3662c6 Hannes Reinecke   2015-01-08  191               return;
9e5ed2a5b3662c6 Hannes Reinecke   2015-01-08  192  
2104551969e8011 Hannes Reinecke   2015-01-08  193       off = 
sdev_format_header(logbuf, logbuf_len,
aa8e25e5006aac5 Bart Van Assche   2021-08-09  194                               
 scmd_name(cmd), scsi_cmd_to_rq(cmd)->tag);
9e5ed2a5b3662c6 Hannes Reinecke   2015-01-08  195       if (off >= logbuf_len)
9e5ed2a5b3662c6 Hannes Reinecke   2015-01-08  196               goto out_printk;
9e5ed2a5b3662c6 Hannes Reinecke   2015-01-08  197       off += scnprintf(logbuf 
+ off, logbuf_len - off, "CDB: ");
9e5ed2a5b3662c6 Hannes Reinecke   2015-01-08  198       if (WARN_ON(off >= 
logbuf_len))
9e5ed2a5b3662c6 Hannes Reinecke   2015-01-08  199               goto out_printk;
9e5ed2a5b3662c6 Hannes Reinecke   2015-01-08  200  
9e5ed2a5b3662c6 Hannes Reinecke   2015-01-08  201       off += 
scsi_format_opcode_name(logbuf + off, logbuf_len - off,
9e5ed2a5b3662c6 Hannes Reinecke   2015-01-08  202                               
       cmd->cmnd);
9e5ed2a5b3662c6 Hannes Reinecke   2015-01-08  203       if (off >= logbuf_len)
9e5ed2a5b3662c6 Hannes Reinecke   2015-01-08  204               goto out_printk;
9e5ed2a5b3662c6 Hannes Reinecke   2015-01-08  205  
9e5ed2a5b3662c6 Hannes Reinecke   2015-01-08  206       /* print out all bytes 
in cdb */
9e5ed2a5b3662c6 Hannes Reinecke   2015-01-08  207       if (cmd->cmd_len > 16) {
9e5ed2a5b3662c6 Hannes Reinecke   2015-01-08  208               /* Print opcode 
in one line and use separate lines for CDB */
9e5ed2a5b3662c6 Hannes Reinecke   2015-01-08  209               off += 
scnprintf(logbuf + off, logbuf_len - off, "\n");
2fc583c4628bf78 Christoph Hellwig 2015-01-18  210               
dev_printk(KERN_INFO, &cmd->device->sdev_gendev, "%s", logbuf);
9e5ed2a5b3662c6 Hannes Reinecke   2015-01-08  211               for (k = 0; k < 
cmd->cmd_len; k += 16) {
9e5ed2a5b3662c6 Hannes Reinecke   2015-01-08  212                       size_t 
linelen = min(cmd->cmd_len - k, 16);
9e5ed2a5b3662c6 Hannes Reinecke   2015-01-08  213  
2104551969e8011 Hannes Reinecke   2015-01-08  214                       off = 
sdev_format_header(logbuf, logbuf_len,
2104551969e8011 Hannes Reinecke   2015-01-08  215                               
                 scmd_name(cmd),
aa8e25e5006aac5 Bart Van Assche   2021-08-09  216                               
                 scsi_cmd_to_rq(cmd)->tag);
9e5ed2a5b3662c6 Hannes Reinecke   2015-01-08  217                       if 
(!WARN_ON(off > logbuf_len - 58)) {
9e5ed2a5b3662c6 Hannes Reinecke   2015-01-08  218                               
off += scnprintf(logbuf + off, logbuf_len - off,
9e5ed2a5b3662c6 Hannes Reinecke   2015-01-08  219                               
                 "CDB[%02x]: ", k);
9e5ed2a5b3662c6 Hannes Reinecke   2015-01-08  220                               
hex_dump_to_buffer(&cmd->cmnd[k], linelen,
9e5ed2a5b3662c6 Hannes Reinecke   2015-01-08  221                               
                   16, 1, logbuf + off,
9e5ed2a5b3662c6 Hannes Reinecke   2015-01-08  222                               
                   logbuf_len - off, false);
9e5ed2a5b3662c6 Hannes Reinecke   2015-01-08  223                       }
2fc583c4628bf78 Christoph Hellwig 2015-01-18  224                       
dev_printk(KERN_INFO, &cmd->device->sdev_gendev, "%s",
9e5ed2a5b3662c6 Hannes Reinecke   2015-01-08  225                               
   logbuf);
9e5ed2a5b3662c6 Hannes Reinecke   2015-01-08  226               }
811f39479c0c2d4 Ye Bin            2020-07-17  227               goto out;
9e5ed2a5b3662c6 Hannes Reinecke   2015-01-08  228       }
9e5ed2a5b3662c6 Hannes Reinecke   2015-01-08  229       if (!WARN_ON(off > 
logbuf_len - 49)) {
9e5ed2a5b3662c6 Hannes Reinecke   2015-01-08  230               off += 
scnprintf(logbuf + off, logbuf_len - off, " ");
9e5ed2a5b3662c6 Hannes Reinecke   2015-01-08  231               
hex_dump_to_buffer(cmd->cmnd, cmd->cmd_len, 16, 1,
9e5ed2a5b3662c6 Hannes Reinecke   2015-01-08  232                               
   logbuf + off, logbuf_len - off,
9e5ed2a5b3662c6 Hannes Reinecke   2015-01-08  233                               
   false);
9e5ed2a5b3662c6 Hannes Reinecke   2015-01-08  234       }
9e5ed2a5b3662c6 Hannes Reinecke   2015-01-08  235  out_printk:
2fc583c4628bf78 Christoph Hellwig 2015-01-18  236       dev_printk(KERN_INFO, 
&cmd->device->sdev_gendev, "%s", logbuf);
811f39479c0c2d4 Ye Bin            2020-07-17  237  out:
9e5ed2a5b3662c6 Hannes Reinecke   2015-01-08  238       
scsi_log_release_buffer(logbuf);
9e5ed2a5b3662c6 Hannes Reinecke   2015-01-08  239  }
9e5ed2a5b3662c6 Hannes Reinecke   2015-01-08  240  
EXPORT_SYMBOL(scsi_print_command);
2104551969e8011 Hannes Reinecke   2015-01-08  241  

:::::: The code at line 90 was first introduced by commit
:::::: ded85c193a391a84076d5c6a7a5668fe164a490e scsi: Implement per-cpu logging 
buffer

:::::: TO: Hannes Reinecke <[email protected]>
:::::: CC: Christoph Hellwig <[email protected]>

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

Reply via email to