Christoph Hellwig | 17 Apr 22:37 2015
Picon

RFC: struct request cleanups

The first 5 patches move the magic IDE request types into the old IDE
driver to keep the core block code clean of them.  Those are basically
ready to merge, just like the 6th one which is a cleanup on it's own.

The real RFC is the last one which allocates the block_pc specific
data separately in the callers instead of bloating every struct
request with it.  I always hated what we did, but with the upcoming
split of nvme into transports and command sets we'll need a NVME
equivalent of BLOCK_PC, and as NVMe was designed by crackmonkeys
dreaming of an ATA controller the "command block" for NVME is even
bigger than what we have to deal with in SCSI.

Note that the old IDE driver doesn't compile with the last patch
yet as there are major nightmares to sort out, and BLOCK_PC passthrough
with dm-multipath doesn't work yet either.  If I get some general
concensus on the approach I'll fix those of course.

--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majordomo <at> vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Christoph Hellwig | 17 Apr 22:11 2015
Picon

[PATCH, RFC] scsi: use host wide tags by default

This patch changes the !blk-mq path to the same defaults as the blk-mq
I/O path by always enabling block tagging, and always using host wide
tags.  We've had blk-mq available for a few releases so bugs with
this mode should have been ironed out, and this ensures we get better
coverage of over tagging setup over different configs.

Signed-off-by: Christoph Hellwig <hch <at> lst.de>
---
 drivers/ata/libata-scsi.c           |  3 --
 drivers/infiniband/ulp/srp/ib_srp.c |  7 +--
 drivers/message/fusion/mptsas.c     |  1 -
 drivers/scsi/53c700.c               |  9 ++--
 drivers/scsi/aic7xxx/aic79xx_osm.c  |  1 -
 drivers/scsi/aic7xxx/aic7xxx_osm.c  |  1 -
 drivers/scsi/aic94xx/aic94xx_init.c |  1 -
 drivers/scsi/bfa/bfad_im.c          |  2 -
 drivers/scsi/bnx2fc/bnx2fc_fcoe.c   |  1 -
 drivers/scsi/csiostor/csio_scsi.c   |  2 -
 drivers/scsi/esas2r/esas2r_main.c   |  1 -
 drivers/scsi/esp_scsi.c             |  1 -
 drivers/scsi/fcoe/fcoe.c            |  1 -
 drivers/scsi/fnic/fnic_main.c       |  8 ----
 drivers/scsi/fnic/fnic_scsi.c       | 16 +++----
 drivers/scsi/hosts.c                |  7 +++
 drivers/scsi/ibmvscsi/ibmvfc.c      |  1 -
 drivers/scsi/ipr.c                  |  1 -
 drivers/scsi/isci/init.c            |  1 -
 drivers/scsi/lpfc/lpfc_scsi.c       |  3 --
 drivers/scsi/mvsas/mv_init.c        |  1 -
 drivers/scsi/pm8001/pm8001_init.c   |  1 -
(Continue reading)

Suman Tripathi | 17 Apr 12:52 2015

ahci Port to Host interrupt as edge trigger

Hi ,

I need some suggestion .

From the below interrupt handler in libahci.c it explains that the
interrupt from port to Host is level  triggered. Do we have any
existing implementation that handles the port to Host as Edge
triggered.

static irqreturn_t ahci_single_irq_intr(int irq, void *dev_instance)
{
struct ata_host *host = dev_instance;
struct ahci_host_priv *hpriv;
unsigned int i, handled = 0;
void __iomem *mmio;
u32 irq_stat, irq_masked;

VPRINTK("ENTER\n");

hpriv = host->private_data;
mmio = hpriv->mmio;

/* sigh.  0xffffffff is a valid return from h/w */
irq_stat = readl(mmio + HOST_IRQ_STAT);
if (!irq_stat)
return IRQ_NONE;

irq_masked = irq_stat & hpriv->port_map;

spin_lock(&host->lock);
(Continue reading)

James Bottomley | 16 Apr 19:34 2015

[GIT PULL] SCSI updates for the 4.0+ merge window

This is the usual grab bag of driver updates (lpfc, qla2xxx, storvsc,
aacraid, ipr) plus an assortment of minor updates.  There's also a major
update to aic1542 which moves the driver into this millenium.

The patch is available here:

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

The Short Changelog is

Andrew Vasquez (1):
      qla2xxx: Add serdes read/write support for ISP27XX

Brian King (5):
      ipr: Driver version 2.6.1
      ipr: Re-enable write same
      ipr: Fix possible error path oops during initialization
      ipr: Reset in task context
      ipr: Reboot speed improvements

Chad Dupuis (1):
      qla2xxx: Increase the wait time for firmware to be ready for P3P.

Christoph Hellwig (3):
      scsi: proper state checking and module refcount handling in scsi_device_get
      sd: don't grab a device references from driver methods
      scsi: serialize ->rescan against ->remove

Geert Uytterhoeven (1):
      g_NCR5380: Kill compiler warning if builtin
(Continue reading)

John Soni Jose | 17 Apr 11:35 2015

[PATCH 7/7] be2iscsi : Bump the driver version

 Bump the driver version

Signed-off-by: John Soni Jose <sony.john-n <at> emulex.com>
Signed-off-by: Jayamohan Kallickal <jayamohan.kallickal <at> emulex.com>
---
 drivers/scsi/be2iscsi/be_main.h |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/drivers/scsi/be2iscsi/be_main.h b/drivers/scsi/be2iscsi/be_main.h
index 8aff7cd..f375f85 100644
--- a/drivers/scsi/be2iscsi/be_main.h
+++ b/drivers/scsi/be2iscsi/be_main.h
 <at>  <at>  -36,7 +36,7  <at>  <at> 
 #include <scsi/scsi_transport_iscsi.h>

 #define DRV_NAME		"be2iscsi"
-#define BUILD_STR		"10.4.114.0"
+#define BUILD_STR		"10.6.0.0"
 #define BE_NAME			"Emulex OneConnect" \
 				"Open-iSCSI Driver version" BUILD_STR
 #define DRV_DESC		BE_NAME " " "Driver"
--

-- 
1.7.1

--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majordomo <at> vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

(Continue reading)

John Soni Jose | 17 Apr 11:33 2015

[PATCH 5/7] be2iscsi : Update the copyright year

Signed-off-by: John Soni Jose <sony.john-n <at> emulex.com>
Signed-off-by: Jayamohan Kallickal <jayamohan.kallickal <at> emulex.com>
---
 drivers/scsi/be2iscsi/be.h       |    2 +-
 drivers/scsi/be2iscsi/be_cmds.c  |    2 +-
 drivers/scsi/be2iscsi/be_cmds.h  |    2 +-
 drivers/scsi/be2iscsi/be_iscsi.c |    2 +-
 drivers/scsi/be2iscsi/be_iscsi.h |    2 +-
 drivers/scsi/be2iscsi/be_main.c  |    2 +-
 drivers/scsi/be2iscsi/be_main.h  |    2 +-
 drivers/scsi/be2iscsi/be_mgmt.c  |    2 +-
 drivers/scsi/be2iscsi/be_mgmt.h  |    2 +-
 9 files changed, 9 insertions(+), 9 deletions(-)

diff --git a/drivers/scsi/be2iscsi/be.h b/drivers/scsi/be2iscsi/be.h
index 81e83a6..273e6f4 100644
--- a/drivers/scsi/be2iscsi/be.h
+++ b/drivers/scsi/be2iscsi/be.h
 <at>  <at>  -1,5 +1,5  <at>  <at> 
 /**
- * Copyright (C) 2005 - 2014 Emulex
+ * Copyright (C) 2005 - 2015 Emulex
  * All rights reserved.
  *
  * This program is free software; you can redistribute it and/or
diff --git a/drivers/scsi/be2iscsi/be_cmds.c b/drivers/scsi/be2iscsi/be_cmds.c
index 8e16c49..ff69493 100644
--- a/drivers/scsi/be2iscsi/be_cmds.c
+++ b/drivers/scsi/be2iscsi/be_cmds.c
 <at>  <at>  -1,5 +1,5  <at>  <at> 
(Continue reading)

John Soni Jose | 17 Apr 11:32 2015

[PATCH 4/7] be2iscsi : Fix memory check before unmapping.

 Check DMA memory before it is unmapped.

Signed-off-by: John Soni Jose <sony.john-n <at> emulex.com>
Signed-off-by: Jayamohan Kallickal <jayamohan.kallickal <at> emulex.com>
---
 drivers/scsi/be2iscsi/be_main.c |   10 +++++++---
 1 files changed, 7 insertions(+), 3 deletions(-)

diff --git a/drivers/scsi/be2iscsi/be_main.c b/drivers/scsi/be2iscsi/be_main.c
index dca3a55..1fbbece 100644
--- a/drivers/scsi/be2iscsi/be_main.c
+++ b/drivers/scsi/be2iscsi/be_main.c
 <at>  <at>  -1368,8 +1368,10  <at>  <at>  be_complete_io(struct beiscsi_conn *beiscsi_conn,
 	if (io_task->cmd_bhs->iscsi_hdr.flags & ISCSI_FLAG_CMD_READ)
 		conn->rxdata_octets += resid;
 unmap:
-	scsi_dma_unmap(io_task->scsi_cmnd);
-	io_task->scsi_cmnd = NULL;
+	if (io_task->scsi_cmnd) {
+		scsi_dma_unmap(io_task->scsi_cmnd);
+		io_task->scsi_cmnd = NULL;
+	}
 	iscsi_complete_scsi_task(task, exp_cmdsn, max_cmdsn);
 }

 <at>  <at>  -4609,11 +4611,13  <at>  <at>  beiscsi_free_mgmt_task_handles(struct beiscsi_conn *beiscsi_conn,
 		spin_unlock_bh(&phba->mgmt_sgl_lock);
 	}

-	if (io_task->mtask_addr)
(Continue reading)

John Soni Jose | 17 Apr 11:30 2015

[PATCH 2/7] be2iscsi : Fix the PCI request region reserving.

 Reserve device PCI I/O and Memory resources.

Signed-off-by: John Soni Jose <sony.john-n <at> emulex.com>
Signed-off-by: Jayamohan Kallickal <jayamohan.kallickal <at> emulex.com>
---
 drivers/scsi/be2iscsi/be_main.c |   22 ++++++++++++++++++----
 1 files changed, 18 insertions(+), 4 deletions(-)

diff --git a/drivers/scsi/be2iscsi/be_main.c b/drivers/scsi/be2iscsi/be_main.c
index 66ea88c..4d95596 100644
--- a/drivers/scsi/be2iscsi/be_main.c
+++ b/drivers/scsi/be2iscsi/be_main.c
 <at>  <at>  -668,14 +668,20  <at>  <at>  static int beiscsi_enable_pci(struct pci_dev *pcidev)
 		return ret;
 	}

+	ret = pci_request_regions(pcidev, DRV_NAME);
+	if (ret) {
+		dev_err(&pcidev->dev,
+				"beiscsi_enable_pci - request region failed\n");
+		goto pci_dev_disable;
+	}
+
 	pci_set_master(pcidev);
 	ret = pci_set_dma_mask(pcidev, DMA_BIT_MASK(64));
 	if (ret) {
 		ret = pci_set_dma_mask(pcidev, DMA_BIT_MASK(32));
 		if (ret) {
 			dev_err(&pcidev->dev, "Could not set PCI DMA Mask\n");
-			pci_disable_device(pcidev);
(Continue reading)

John Soni Jose | 17 Apr 11:28 2015

[PATCH 0/7] be2iscsi driver update to 10.6.0.0

 The patchset updates be2iscsi driver to 10.6.0.0 version.
 These patches are generated aganist scsi for-next branch

John Soni Jose (7):
  be2iscsi : Fix the retry count for boot targets
  be2iscsi : Fix the PCI request region reserving.
  be2iscsi : Fix memory leak in the unload path
  be2iscsi : Fix memory check before unmapping.
  be2iscsi : Update the copyright year
  be2iscsi: Logout of FW Boot Session
  be2iscsi : Bump the driver version

 drivers/scsi/be2iscsi/be.h       |    2 +-
 drivers/scsi/be2iscsi/be_cmds.c  |    6 ++-
 drivers/scsi/be2iscsi/be_cmds.h  |   14 ++++++-
 drivers/scsi/be2iscsi/be_iscsi.c |   14 ++++++-
 drivers/scsi/be2iscsi/be_iscsi.h |    2 +-
 drivers/scsi/be2iscsi/be_main.c  |   76 +++++++++++++++++++++++++++++---------
 drivers/scsi/be2iscsi/be_main.h  |   10 ++++-
 drivers/scsi/be2iscsi/be_mgmt.c  |   72 +++++++++++++++++++++++++++++++++++-
 drivers/scsi/be2iscsi/be_mgmt.h  |    5 ++-
 9 files changed, 175 insertions(+), 26 deletions(-)

--

-- 
1.7.9.5

--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majordomo <at> vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
(Continue reading)

John Soni Jose | 17 Apr 11:34 2015

[PATCH 6/7] be2iscsi: Logout of FW Boot Session

 Once be2iscsi driver is loaded and operational close Boot
 session established by FW.

Signed-off-by: John Soni Jose <sony.john-n <at> emulex.com>
Signed-off-by: Jayamohan Kallickal <jayamohan.kallickal <at> emulex.com>
---
 drivers/scsi/be2iscsi/be_cmds.h  |   12 ++++++
 drivers/scsi/be2iscsi/be_iscsi.c |   12 ++++++
 drivers/scsi/be2iscsi/be_main.c  |    1 +
 drivers/scsi/be2iscsi/be_main.h  |    2 +
 drivers/scsi/be2iscsi/be_mgmt.c  |   70 ++++++++++++++++++++++++++++++++++++++
 drivers/scsi/be2iscsi/be_mgmt.h  |    3 ++
 6 files changed, 100 insertions(+), 0 deletions(-)

diff --git a/drivers/scsi/be2iscsi/be_cmds.h b/drivers/scsi/be2iscsi/be_cmds.h
index d0097a2..0586815 100644
--- a/drivers/scsi/be2iscsi/be_cmds.h
+++ b/drivers/scsi/be2iscsi/be_cmds.h
 <at>  <at>  -304,6 +304,17  <at>  <at>  struct mgmt_auth_method_format {
 	struct	mgmt_chap_format chap;
 } __packed;

+struct be_cmd_req_logout_fw_sess {
+	struct be_cmd_req_hdr hdr;	/* dw[4] */
+	uint32_t session_handle;
+} __packed;
+
+struct be_cmd_resp_logout_fw_sess {
+	struct be_cmd_resp_hdr hdr;	/* dw[4] */
+#define BEISCSI_MGMT_SESSION_CLOSE 0x20
(Continue reading)

John Soni Jose | 17 Apr 11:32 2015

[PATCH 3/7] be2iscsi : Fix memory leak in the unload path

 Driver was not freeing the DMA memory allocated for EQ/CQ in the
 unload path. This patch frees the DMA memory during the driver unload.

Signed-off-by: John Soni Jose <sony.john-n <at> emulex.com>
Signed-off-by: Jayamohan Kallickal <jayamohan.kallickal <at> emulex.com>
---
 drivers/scsi/be2iscsi/be_main.c |   18 ++++++++++++------
 1 files changed, 12 insertions(+), 6 deletions(-)

diff --git a/drivers/scsi/be2iscsi/be_main.c b/drivers/scsi/be2iscsi/be_main.c
index 4d95596..dca3a55 100644
--- a/drivers/scsi/be2iscsi/be_main.c
+++ b/drivers/scsi/be2iscsi/be_main.c
 <at>  <at>  -3695,14 +3695,16  <at>  <at>  static void be_mcc_queues_destroy(struct beiscsi_hba *phba)
 	struct be_ctrl_info *ctrl = &phba->ctrl;

 	q = &phba->ctrl.mcc_obj.q;
-	if (q->created)
+	if (q->created) {
 		beiscsi_cmd_q_destroy(ctrl, q, QTYPE_MCCQ);
-	be_queue_free(phba, q);
+		be_queue_free(phba, q);
+	}

 	q = &phba->ctrl.mcc_obj.cq;
-	if (q->created)
+	if (q->created) {
 		beiscsi_cmd_q_destroy(ctrl, q, QTYPE_CQ);
-	be_queue_free(phba, q);
+		be_queue_free(phba, q);
(Continue reading)


Gmane