Re: [GIT PULL] SCSI fixes for 4.11-rc3

2017-03-21 Thread Johannes Thumshirn
On Tue, Mar 21, 2017 at 11:08:51AM -0400, James Bottomley wrote:
> Nine small fixes: the biggest is probably finally sorting out Kconfig
> issues with lpfc nvme.

I'm sorry to disappoint you but there's another fix from Arnd from today
here: https://lkml.org/lkml/2017/3/21/308

Byte,
Johannes
-- 
Johannes Thumshirn  Storage
jthumsh...@suse.de+49 911 74053 689
SUSE LINUX GmbH, Maxfeldstr. 5, 90409 Nürnberg
GF: Felix Imendörffer, Jane Smithard, Graham Norton
HRB 21284 (AG Nürnberg)
Key fingerprint = EC38 9CAB C2C4 F25D 8600 D0D0 0393 969D 2D76 0850


[GIT PULL] SCSI fixes for 4.11-rc3

2017-03-21 Thread James Bottomley
Nine small fixes: the biggest is probably finally sorting out Kconfig
issues with lpfc nvme.  There are some performance fixes for megaraid
and hpsa and a static checker fix.

The patch is available here:

git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi.git scsi-fixes

The short changelog is:

Don Brace (3):
  scsi: hpsa: do not timeout reset operations
  scsi: hpsa: limit outstanding rescans
  scsi: hpsa: update check for logical volume status

James Smart (1):
  scsi: lpfc: Finalize Kconfig options for nvme

Shivasharan S (4):
  scsi: megaraid_sas: Driver version upgrade
  scsi: megaraid_sas: raid6 also require cpuSel check same as raid5
  scsi: megaraid_sas: add correct return type check for ldio hint logic for 
raid1
  scsi: megaraid_sas: enable intx only if msix request fails

Tomas Winkler (1):
  scsi: ufs: don't check unsigned type for a negative value

And the diffstat:

 drivers/scsi/Kconfig| 14 
 drivers/scsi/hpsa.c | 53 +
 drivers/scsi/hpsa.h |  1 +
 drivers/scsi/hpsa_cmd.h |  2 ++
 drivers/scsi/lpfc/lpfc_attr.c   |  4 +--
 drivers/scsi/lpfc/lpfc_init.c   |  7 
 drivers/scsi/lpfc/lpfc_nvme.c   |  8 ++---
 drivers/scsi/lpfc/lpfc_nvmet.c  |  8 ++---
 drivers/scsi/megaraid/megaraid_sas.h|  4 +--
 drivers/scsi/megaraid/megaraid_sas_base.c   | 17 ++---
 drivers/scsi/megaraid/megaraid_sas_fusion.c |  4 +--
 drivers/scsi/ufs/ufshcd.c   |  2 +-
 12 files changed, 69 insertions(+), 55 deletions(-)

James

---

diff --git a/drivers/scsi/Kconfig b/drivers/scsi/Kconfig
index 4bf55b5..3c52867 100644
--- a/drivers/scsi/Kconfig
+++ b/drivers/scsi/Kconfig
@@ -1253,20 +1253,6 @@ config SCSI_LPFC_DEBUG_FS
  This makes debugging information from the lpfc driver
  available via the debugfs filesystem.
 
-config LPFC_NVME_INITIATOR
-   bool "Emulex LightPulse Fibre Channel NVME Initiator Support"
-   depends on SCSI_LPFC && NVME_FC
-   ---help---
- This enables NVME Initiator support in the Emulex lpfc driver.
-
-config LPFC_NVME_TARGET
-   bool "Emulex LightPulse Fibre Channel NVME Initiator Support"
-   depends on SCSI_LPFC && NVME_TARGET_FC
-   ---help---
- This enables NVME Target support in the Emulex lpfc driver.
- Target enablement must still be enabled on a per adapter
- basis by module parameters.
-
 config SCSI_SIM710
tristate "Simple 53c710 SCSI support (Compaq, NCR machines)"
depends on (EISA || MCA) && SCSI
diff --git a/drivers/scsi/hpsa.c b/drivers/scsi/hpsa.c
index 524a0c7..0d0be77 100644
--- a/drivers/scsi/hpsa.c
+++ b/drivers/scsi/hpsa.c
@@ -2956,7 +2956,7 @@ static int hpsa_send_reset(struct ctlr_info *h, unsigned 
char *scsi3addr,
/* fill_cmd can't fail here, no data buffer to map. */
(void) fill_cmd(c, reset_type, h, NULL, 0, 0,
scsi3addr, TYPE_MSG);
-   rc = hpsa_scsi_do_simple_cmd(h, c, reply_queue, DEFAULT_TIMEOUT);
+   rc = hpsa_scsi_do_simple_cmd(h, c, reply_queue, NO_TIMEOUT);
if (rc) {
dev_warn(>pdev->dev, "Failed to send reset command\n");
goto out;
@@ -3714,7 +3714,7 @@ static int hpsa_get_volume_status(struct ctlr_info *h,
  *  # (integer code indicating one of several NOT READY states
  * describing why a volume is to be kept offline)
  */
-static int hpsa_volume_offline(struct ctlr_info *h,
+static unsigned char hpsa_volume_offline(struct ctlr_info *h,
unsigned char scsi3addr[])
 {
struct CommandList *c;
@@ -3735,7 +3735,7 @@ static int hpsa_volume_offline(struct ctlr_info *h,
DEFAULT_TIMEOUT);
if (rc) {
cmd_free(h, c);
-   return 0;
+   return HPSA_VPD_LV_STATUS_UNSUPPORTED;
}
sense = c->err_info->SenseInfo;
if (c->err_info->SenseLen > sizeof(c->err_info->SenseInfo))
@@ -3746,19 +3746,13 @@ static int hpsa_volume_offline(struct ctlr_info *h,
cmd_status = c->err_info->CommandStatus;
scsi_status = c->err_info->ScsiStatus;
cmd_free(h, c);
-   /* Is the volume 'not ready'? */
-   if (cmd_status != CMD_TARGET_STATUS ||
-   scsi_status != SAM_STAT_CHECK_CONDITION ||
-   sense_key != NOT_READY ||
-   asc != ASC_LUN_NOT_READY)  {
-   return 0;
-   }
 
/* Determine the reason for not ready state */
ldstat = hpsa_get_volume_status(h, scsi3addr);
 
/* Keep volume offline in certain cases: */
switch (ldstat) {
+   case HPSA_LV_FAILED:
case HPSA_LV_UNDERGOING_ERASE:
case HPSA_LV_NOT_AVAILABLE:
case HPSA_LV_UNDERGOING_RPI:
@@ -3780,7 +3774,7 @@ static int