1. 07 Mar, 2017 1 commit
    • Arnd Bergmann's avatar
      scsi: qedi: fix build error without DEBUG_FS · bd571195
      Arnd Bergmann authored
      Without CONFIG_DEBUG_FS, we run into a link error:
      
      drivers/scsi/qedi/qedi_iscsi.o: In function `qedi_ep_poll':
      qedi_iscsi.c:(.text.qedi_ep_poll+0x134): undefined reference to `do_not_recover'
      drivers/scsi/qedi/qedi_iscsi.o: In function `qedi_ep_disconnect':
      qedi_iscsi.c:(.text.qedi_ep_disconnect+0x36c): undefined reference to `do_not_recover'
      drivers/scsi/qedi/qedi_iscsi.o: In function `qedi_ep_connect':
      qedi_iscsi.c:(.text.qedi_ep_connect+0x350): undefined reference to `do_not_recover'
      drivers/scsi/qedi/qedi_fw.o: In function `qedi_tmf_work':
      qedi_fw.c:(.text.qedi_tmf_work+0x3b4): undefined reference to `do_not_recover'
      
      This defines the symbol as a constant in this case, as there is no way to
      set it to anything other than zero without DEBUG_FS. In addition, I'm renaming
      it to qedi_do_not_recover in order to put it into a driver specific namespace,
      as "do_not_recover" is a really bad name for a kernel-wide global identifier
      when it is used only in one driver.
      
      Fixes: ace7f46b ("scsi: qedi: Add QLogic FastLinQ offload iSCSI driver framework.")
      Reviewed-by: default avatarJohannes Thumshirn <jthumshirn@suse.de>
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      Acked-by: default avatarManish Rangankar <Manish.Rangankar@cavium.com>
      Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
      bd571195
  2. 02 Mar, 2017 3 commits
    • Bart Van Assche's avatar
      scsi: mpt3sas: Avoid sleeping in interrupt context · 8893cf6c
      Bart Van Assche authored
      Commit 669f0441 ("scsi: srp_transport: Move queuecommand() wait code
      to SCSI core") can make scsi_internal_device_block() sleep.  However,
      the mpt3sas driver can call this function from an interrupt
      handler. Hence add a second argument to scsi_internal_device_block()
      that restores the old behavior of this function for the mpt3sas handler.
      
      The call chain that triggered an "IRQ handler enabled interrupts"
      complaint is as follows:
      
      _base_interrupt()
      -> _base_async_event()
         -> mpt3sas_scsih_event_callback()
            -> _scsih_check_topo_delete_events()
               -> _scsih_block_io_to_children_attached_directly()
                  -> _scsih_block_io_device()
                     -> _scsih_internal_device_block()
                        -> scsi_internal_device_block()
      Reported-by: default avatarOmar Sandoval <osandov@osandov.com>
      Signed-off-by: default avatarBart Van Assche <bart.vanassche@sandisk.com>
      Cc: Omar Sandoval <osandov@osandov.com>
      Cc: Hannes Reinecke <hare@suse.com>
      Cc: Sagi Grimberg <sagi@grimberg.me>
      Cc: Christoph Hellwig <hch@lst.de>
      Cc: Sathya Prakash <sathya.prakash@broadcom.com>
      Cc: Chaitra P B <chaitra.basappa@broadcom.com>
      Cc: Suganath Prabu Subramani <suganath-prabu.subramani@broadcom.com>
      Cc: Sreekanth Reddy <Sreekanth.Reddy@broadcom.com>
      Cc: <stable@vger.kernel.org> # v4.10+
      Tested-by: default avatarOmar Sandoval <osandov@fb.com>
      Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
      8893cf6c
    • Damien Le Moal's avatar
      scsi: sd: Check for unaligned partial completion · c46f0917
      Damien Le Moal authored
      Commit <f2e767bb> ("mpt3sas: Force request partial completion
      alignment") was not considering the case of commands not operating on
      logical block size units (e.g. REQ_OP_ZONE_REPORT and its 64B aligned
      partial replies). In this case, forcing alignment of resid to the device
      logical block size can break the command result, e.g. in the case of
      REQ_OP_ZONE_REPORT, the exact number of zone reported by the device.
      
      Move the partial completion alignement check of mpt3sas to a generic
      implementation in sd_done(). The check is added within the default
      section of the initial req_op() switch case so that the report and reset
      zone commands are ignored. In addition, as sd_done() is not called for
      passthrough requests, resid corrections are not done as intended by the
      initial mpt3sas patch.
      
      Fixes: f2e767bb ("mpt3sas: Force request partial completion alignment")
      Cc: <stable@vger.kernel.org> # v4.10
      Signed-off-by: default avatarDamien Le Moal <damien.lemoal@wdc.com>
      Acked-by: default avatarChristoph Hellwig <hch@lst.de>
      Reviewed-by: default avatarBart Van Assche <bart.vanassche@sandisk.com>
      Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
      c46f0917
    • Potomski, MichalX's avatar
      scsi: ufs: Factor out ufshcd_read_desc_param · a4b0e8a4
      Potomski, MichalX authored
      Since in UFS 2.1 specification some of the descriptor lengths differs
      from 2.0 specification and some devices, which are reporting spec
      version 2.0 have different descriptor lengths we can not rely on
      hardcoded values taken from 2.0 specification. This patch introduces
      reading these lengths per each device from descriptor headers at probe
      time to ensure their correctness.
      Signed-off-by: default avatarMichal' Potomski <michalx.potomski@intel.com>
      Reviewed-by: default avatarSubhash Jadavani <subhashj@codeaurora.org>
      Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
      a4b0e8a4
  3. 01 Mar, 2017 2 commits
  4. 28 Feb, 2017 4 commits
  5. 23 Feb, 2017 19 commits
  6. 22 Feb, 2017 11 commits