Hi zhengbin,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on mkp-scsi/for-next]
[also build test WARNING on v5.1-rc1 next-20190321]
[if your patch is applied to the wrong git tree, please drop us a note to help 
improve the system]

url:    
https://github.com/0day-ci/linux/commits/zhengbin/blk-mq-fix-a-hung-issue-when-set-device-state-to-blocked-and-restore-running/20190321-180603
base:   https://git.kernel.org/pub/scm/linux/kernel/git/mkp/scsi.git for-next
config: x86_64-randconfig-x012-201911 (attached as .config)
compiler: gcc-7 (Debian 7.3.0-1) 7.3.0
reproduce:
        # save the attached .config to linux build tree
        make ARCH=x86_64 

All warnings (new ones prefixed by >>):

   drivers/scsi/scsi_sysfs.c: In function 'store_state_field':
>> drivers/scsi/scsi_sysfs.c:773:2: warning: ISO C90 forbids mixed declarations 
>> and code [-Wdeclaration-after-statement]
     enum scsi_device_state oldstate = sdev->sdev_state;
     ^~~~

vim +773 drivers/scsi/scsi_sysfs.c

   752  
   753  static ssize_t
   754  store_state_field(struct device *dev, struct device_attribute *attr,
   755                    const char *buf, size_t count)
   756  {
   757          int i, ret;
   758          struct scsi_device *sdev = to_scsi_device(dev);
   759          enum scsi_device_state state = 0;
   760  
   761          for (i = 0; i < ARRAY_SIZE(sdev_states); i++) {
   762                  const int len = strlen(sdev_states[i].name);
   763                  if (strncmp(sdev_states[i].name, buf, len) == 0 &&
   764                     buf[len] == '\n') {
   765                          state = sdev_states[i].value;
   766                          break;
   767                  }
   768          }
   769          if (!state)
   770                  return -EINVAL;
   771  
   772          mutex_lock(&sdev->state_mutex);
 > 773          enum scsi_device_state oldstate = sdev->sdev_state;
   774          ret = scsi_device_set_state(sdev, state);
   775          if (ret == 0) {
   776                  /* If device use blk-mq, the device state changes from
   777                   * SDEV_BLOCK to SDEV_RUNNING, we need to run hw queue
   778                   * to avoid io hung.
   779                   */
   780                  if ((state == SDEV_RUNNING) && (oldstate == 
SDEV_BLOCK)) {
   781                          struct request_queue *q = sdev->request_queue;
   782  
   783                          if (q->mq_ops)
   784                                  blk_mq_run_hw_queues(q, true);
   785                  }
   786          }
   787          mutex_unlock(&sdev->state_mutex);
   788  
   789          return ret == 0 ? count : -EINVAL;
   790  }
   791  

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

Attachment: .config.gz
Description: application/gzip

Reply via email to