Merge tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi
authorLinus Torvalds <torvalds@linux-foundation.org>
Thu, 2 Sep 2021 22:09:46 +0000 (15:09 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Thu, 2 Sep 2021 22:09:46 +0000 (15:09 -0700)
Pull SCSI updates from James Bottomley:
 "This series consists of the usual driver updates (ufs, qla2xxx,
  target, smartpqi, lpfc, mpt3sas).

  The core change causing the most churn was replacing the command
  request field request with a macro, allowing us to offset map to it
  and remove the redundant field; the same was also done for the tag
  field.

  The most impactful change is the final removal of scsi_ioctl, which
  has been deprecated for over a decade"

* tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi: (293 commits)
  scsi: ufs: Fix ufshcd_request_sense_async() for Samsung KLUFG8RHDA-B2D1
  scsi: ufs: ufs-exynos: Fix static checker warning
  scsi: mpt3sas: Use the proper SCSI midlayer interfaces for PI
  scsi: lpfc: Use the proper SCSI midlayer interfaces for PI
  scsi: lpfc: Copyright updates for 14.0.0.1 patches
  scsi: lpfc: Update lpfc version to 14.0.0.1
  scsi: lpfc: Add bsg support for retrieving adapter cmf data
  scsi: lpfc: Add cmf_info sysfs entry
  scsi: lpfc: Add debugfs support for cm framework buffers
  scsi: lpfc: Add support for maintaining the cm statistics buffer
  scsi: lpfc: Add rx monitoring statistics
  scsi: lpfc: Add support for the CM framework
  scsi: lpfc: Add cmfsync WQE support
  scsi: lpfc: Add support for cm enablement buffer
  scsi: lpfc: Add cm statistics buffer support
  scsi: lpfc: Add EDC ELS support
  scsi: lpfc: Expand FPIN and RDF receive logging
  scsi: lpfc: Add MIB feature enablement support
  scsi: lpfc: Add SET_HOST_DATA mbox cmd to pass date/time info to firmware
  scsi: fc: Add EDC ELS definition
  ...

17 files changed:
1  2 
block/Kconfig
block/Makefile
block/blk-mq.c
drivers/ata/libata-scsi.c
drivers/base/core.c
drivers/block/Kconfig
drivers/scsi/lpfc/lpfc_init.c
drivers/scsi/mpt3sas/mpt3sas_base.c
drivers/scsi/scsi_debug.c
drivers/scsi/scsi_sysfs.c
drivers/scsi/sd.c
drivers/scsi/sg.c
drivers/scsi/sr.c
drivers/scsi/st.c
drivers/scsi/storvsc_drv.c
drivers/target/loopback/tcm_loop.c
include/linux/blkdev.h

diff --cc block/Kconfig
Simple merge
diff --cc block/Makefile
Simple merge
diff --cc block/blk-mq.c
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
@@@ -3815,35 -3821,24 +3816,24 @@@ static long st_ioctl(struct file *file
                goto out;
        }
        mutex_unlock(&STp->lock);
-       switch (cmd_in) {
-               case SCSI_IOCTL_STOP_UNIT:
-                       /* unload */
-                       retval = scsi_ioctl(STp->device, cmd_in, p);
-                       if (!retval) {
-                               STp->rew_at_close = 0;
-                               STp->ready = ST_NO_TAPE;
-                       }
-                       return retval;
  
-               case SCSI_IOCTL_GET_IDLUN:
-               case SCSI_IOCTL_GET_BUS_NUMBER:
-                       break;
+       switch (cmd_in) {
+       case SG_IO:
+       case SCSI_IOCTL_SEND_COMMAND:
+       case CDROM_SEND_PACKET:
+               if (!capable(CAP_SYS_RAWIO))
+                       return -EPERM;
+       default:
+               break;
+       }
  
-               default:
-                       if ((cmd_in == SG_IO ||
-                            cmd_in == SCSI_IOCTL_SEND_COMMAND ||
-                            cmd_in == CDROM_SEND_PACKET) &&
-                           !capable(CAP_SYS_RAWIO))
-                               i = -EPERM;
-                       else
-                               i = scsi_cmd_ioctl(STp->device->request_queue,
-                                                  NULL, file->f_mode, cmd_in,
-                                                  p);
-                       if (i != -ENOTTY)
-                               return i;
-                       break;
 -      retval = scsi_ioctl(STp->device, STp->disk, file->f_mode, cmd_in, p);
++      retval = scsi_ioctl(STp->device, NULL, file->f_mode, cmd_in, p);
+       if (!retval && cmd_in == SCSI_IOCTL_STOP_UNIT) {
+               /* unload */
+               STp->rew_at_close = 0;
+               STp->ready = ST_NO_TAPE;
        }
-       return -ENOTTY;
+       return retval;
  
   out:
        mutex_unlock(&STp->lock);
@@@ -1199,19 -1199,10 +1199,19 @@@ static void storvsc_on_io_completion(st
                vstor_packet->vm_srb.sense_info_length);
  
        if (vstor_packet->vm_srb.scsi_status != 0 ||
 -          vstor_packet->vm_srb.srb_status != SRB_STATUS_SUCCESS)
 -              storvsc_log(device, STORVSC_LOGGING_ERROR,
 +          vstor_packet->vm_srb.srb_status != SRB_STATUS_SUCCESS) {
 +
 +              /*
 +               * Log TEST_UNIT_READY errors only as warnings. Hyper-V can
 +               * return errors when detecting devices using TEST_UNIT_READY,
 +               * and logging these as errors produces unhelpful noise.
 +               */
 +              int loglevel = (stor_pkt->vm_srb.cdb[0] == TEST_UNIT_READY) ?
 +                      STORVSC_LOGGING_WARN : STORVSC_LOGGING_ERROR;
 +
 +              storvsc_log(device, loglevel,
                        "tag#%d cmd 0x%x status: scsi 0x%x srb 0x%x hv 0x%x\n",
-                       request->cmd->request->tag,
+                       scsi_cmd_to_rq(request->cmd)->tag,
                        stor_pkt->vm_srb.cdb[0],
                        vstor_packet->vm_srb.scsi_status,
                        vstor_packet->vm_srb.srb_status,
Simple merge
Simple merge