firefly-linux-kernel-4.4.55.git
10 years agolpfc: Fix FW dump using sysfs
James Smart [Fri, 4 Apr 2014 17:52:12 +0000 (13:52 -0400)]
lpfc: Fix FW dump using sysfs

Fix FW dump using sysfs

Signed-off-by: James Smart <james.smart@emulex.com>
Reviewed-By: Dick Kennedy <dick.kennedy@emulex.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
10 years agolpfc: Fix SLI4 s abort loop to process all FCP rings and under ring_lock
James Smart [Fri, 4 Apr 2014 17:52:02 +0000 (13:52 -0400)]
lpfc: Fix SLI4 s abort loop to process all FCP rings and under ring_lock

Fix SLI4 s abort loop to process all FCP rings and under ring_lock

Signed-off-by: James Smart <james.smart@emulex.com>
Reviewed-By: Dick Kennedy <dick.kennedy@emulex.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
10 years agolpfc: Fixed kernel panic in lpfc_abort_handler
James Smart [Fri, 4 Apr 2014 17:51:53 +0000 (13:51 -0400)]
lpfc: Fixed kernel panic in lpfc_abort_handler

Fixed kernel panic in lpfc_abort_handler

Signed-off-by: James Smart <james.smart@emulex.com>
Reviewed-By: Dick Kennedy <dick.kennedy@emulex.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
10 years agolpfc: Fix locking for postbufq when freeing
James Smart [Fri, 4 Apr 2014 17:51:44 +0000 (13:51 -0400)]
lpfc: Fix locking for postbufq when freeing

Fix locking for postbufq when freeing

Signed-off-by: James Smart <james.smart@emulex.com>
Reviewed-By: Dick Kennedy <dick.kennedy@emulex.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
10 years agolpfc: Fix locking for lpfc_hba_down_post
James Smart [Fri, 4 Apr 2014 17:51:34 +0000 (13:51 -0400)]
lpfc: Fix locking for lpfc_hba_down_post

Fix locking for lpfc_hba_down_post

Signed-off-by: James Smart <james.smart@emulex.com>
Reviewed-By: Dick Kennedy <dick.kennedy@emulex.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
10 years agolpfc: Fix dynamic transitions of FirstBurst from on to off
James Smart [Fri, 4 Apr 2014 17:51:25 +0000 (13:51 -0400)]
lpfc: Fix dynamic transitions of FirstBurst from on to off

Fix dynamic transitions of FirstBurst from on to off

Signed-off-by: James Smart <james.smart@emulex.com>
Reviewed-By: Dick Kennedy <dick.kennedy@emulex.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
10 years agohpsa: fix handling of hpsa_volume_offline return value
Stephen M. Cameron [Thu, 29 May 2014 15:54:25 +0000 (10:54 -0500)]
hpsa: fix handling of hpsa_volume_offline return value

Make return value an int instead of an unsigned char so that
we do not lose negative error return values.

Signed-off-by: Stephen M. Cameron <scameron@beardog.cce.hp.com>
Reviewed-by: Webb Scales <webb.scales@hp.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
10 years agohpsa: return -ENOMEM not -1 on kzalloc failure in hpsa_get_device_id
Stephen M. Cameron [Thu, 29 May 2014 15:54:20 +0000 (10:54 -0500)]
hpsa: return -ENOMEM not -1 on kzalloc failure in hpsa_get_device_id

Signed-off-by: Stephen M. Cameron <scameron@beardog.cce.hp.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
Reviewed-by: Mike Miller <michael.miller@canonical.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
10 years agohpsa: remove messages about volume status VPD inquiry page not supported
Stephen M. Cameron [Thu, 29 May 2014 15:54:10 +0000 (10:54 -0500)]
hpsa: remove messages about volume status VPD inquiry page not supported

They are annoying and do not help anyone.

Signed-off-by: Stephen M. Cameron <scameron@beardog.cce.hp.com>
Reviewed-by: Justin Lindley <justin.lindley@hp.com>
Reviewed-by: Mike Miller <michael.miller@hp.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
10 years agohpsa: report check condition even if no sense data present for ioaccel2 mode
Stephen M. Cameron [Thu, 29 May 2014 15:53:54 +0000 (10:53 -0500)]
hpsa: report check condition even if no sense data present for ioaccel2 mode

It shouldn't happen that we get a check condition with no sense data, but if it
does, we shouldn't just drop the check condition on the floor.

Signed-off-by: Stephen M. Cameron <scameron@beardog.cce.hp.com>
Reviewed-by: Justin Lindley <justin.lindley@hp.com>
Reviewed-by: Mike Miller <michael.miller@canonical.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
10 years agohpsa: remove bad unlikely annotation from device list updating code
Stephen M. Cameron [Thu, 29 May 2014 15:53:49 +0000 (10:53 -0500)]
hpsa: remove bad unlikely annotation from device list updating code

Signed-off-by: Stephen M. Cameron <scameron@beardog.cce.hp.com>
Reviewed-by: Justin Lindley <justin.lindley@hp.com>
Reviewed-by: Mike Miller <michael.miller@canonical.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
10 years agohpsa: fix event filtering to prevent excessive rescans with old firmware
Stephen M. Cameron [Thu, 29 May 2014 15:53:44 +0000 (10:53 -0500)]
hpsa: fix event filtering to prevent excessive rescans with old firmware

CTLR_STATE_CHANGE_EVENT and CTLR_STATE_CHANGE_EVENT_REDUNDANT_CNTRL
do not require rescans to be initiated.  Current firmware filters out
these events already, but some out of date firmware doesn't, so the
driver needs to filter them out too.  Without this change and with out
of date firmware you may see the driver spending a lot of time
scanning devices unnecessarily on some Smart Arrays.

Signed-off-by: Stephen M. Cameron <scameron@beardog.cce.hp.com>
Reviewed-by: Justin Lindley <justin.lindley@hp.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
10 years agohpsa: kill annoying messages about SSD Smart Path retries
Stephen M. Cameron [Thu, 29 May 2014 15:53:39 +0000 (10:53 -0500)]
hpsa: kill annoying messages about SSD Smart Path retries

There's nothing the user can or should do about these messages,
the commands are retried down the normal RAID path, and the
messages just flood the logs and sap performance.

Signed-off-by: Stephen M. Cameron <scameron@beardog.cce.hp.com>
Reviewed-by: Joe Handzik <joseph.t.handzik@hp.com>
Reviewed-by: Mike Miller <michael.miller@canonical.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
10 years agohpsa: define extended_report_lun_entry data structure
Stephen M. Cameron [Thu, 29 May 2014 15:53:34 +0000 (10:53 -0500)]
hpsa: define extended_report_lun_entry data structure

Signed-off-by: Stephen M. Cameron <scameron@beardog.cce.hp.com>
Reviewed-by: Joe Handzik <joseph.t.handzik@hp.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
10 years agohpsa: Rearrange start_io to avoid one unlock/lock sequence in main io path
Stephen M. Cameron [Thu, 29 May 2014 15:53:28 +0000 (10:53 -0500)]
hpsa: Rearrange start_io to avoid one unlock/lock sequence in main io path

Signed-off-by: Stephen M. Cameron <scameron@beardog.cce.hp.com>
Reviewed-by: Joe Handzik <joseph.t.handzik@hp.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
10 years agohpsa: avoid unnecessary readl on every command submission
Stephen M. Cameron [Thu, 29 May 2014 15:53:23 +0000 (10:53 -0500)]
hpsa: avoid unnecessary readl on every command submission

for controllers which support either of the ioaccel transport methods.

Signed-off-by: Stephen M. Cameron <scameron@beardog.cce.hp.com>
Reviewed-by: Mike Miller <michael.miller@canonical.com>
Reviewed-by: Joe Handzik <joseph.t.handzik@hp.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
10 years agohpsa: use per-cpu variable for lockup_detected
Stephen M. Cameron [Thu, 29 May 2014 15:53:18 +0000 (10:53 -0500)]
hpsa: use per-cpu variable for lockup_detected

Avoid excessive locking by using per-cpu variable for lockup_detected

Signed-off-by: Stephen M. Cameron <scameron@beardog.cce.hp.com>
Reviewed-by: Scott Teel <scott.teel@hp.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
10 years agohpsa: set irq affinity hints to route MSI-X vectors across CPUs
Stephen M. Cameron [Thu, 29 May 2014 15:53:13 +0000 (10:53 -0500)]
hpsa: set irq affinity hints to route MSI-X vectors across CPUs

Signed-off-by: Stephen M. Cameron <scameron@beardog.cce.hp.com>
Reviewed-by: Mike Miller <michael.miller@canonical.com>
Reviewed-by: Scott Teel <scott.teel@hp.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
10 years agohpsa: allocate reply queues individually
Stephen M. Cameron [Thu, 29 May 2014 15:53:07 +0000 (10:53 -0500)]
hpsa: allocate reply queues individually

Now that we can allocate more than 4 reply queues (up to 64)
we shouldn't try to make them share the same allocation but
should allocate them separately.

Signed-off-by: Stephen M. Cameron <scameron@beardog.cce.hp.com>
Reviewed-by: Mike Miller <michael.miller@canonical.com>
Reviewed-by: Scott Teel <scott.teel@hp.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
10 years agohpsa: choose number of reply queues more intelligently.
Stephen M. Cameron [Thu, 29 May 2014 15:53:02 +0000 (10:53 -0500)]
hpsa: choose number of reply queues more intelligently.

No sense having 8 or 16 reply queues if you only have 4 cpus,
and likewise no sense limiting to 8 reply queues if you have
many more cpus.

Signed-off-by: Stephen M. Cameron <scameron@beardog.cce.hp.com>
Reviewed-by: Mike Miller <michael.miller@canonical.com>
Reviewed-by: Scott Teel <scott.teel@hp.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
10 years agohpsa: remove dev_dbg() calls from hot paths
Stephen M. Cameron [Thu, 29 May 2014 15:52:57 +0000 (10:52 -0500)]
hpsa: remove dev_dbg() calls from hot paths

They are not completely free of cost when disabled and
when enabled emitting debug output for every command
submitted produces far too much output to be useful.

Signed-off-by: Stephen M. Cameron <scameron@beardog.cce.hp.com>
Reviewed-by: Mike Miller <michael.miller@canonical.com>
Reviewed-by: Webb Scales <webb.scales@hp.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
10 years agohpsa: use gcc aligned attribute instead of manually padding structs
Stephen M. Cameron [Thu, 29 May 2014 15:52:52 +0000 (10:52 -0500)]
hpsa: use gcc aligned attribute instead of manually padding structs

Signed-off-by: Stephen M. Cameron <scameron@beardog.cce.hp.com>
Reviewed-by: Webb Scales <webb.scales@hp.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
10 years agohpsa: change doorbell reset delay to ten seconds
Justin Lindley [Thu, 29 May 2014 15:52:47 +0000 (10:52 -0500)]
hpsa: change doorbell reset delay to ten seconds

After 3.22 firmware, PMC firmware guys tell us the
previous 5 second delay after a reset now needs to
be 10 secs to avoid a PCIe error due to the driver
looking at the controller too soon after the reset.

Signed-off-by: Justin Lindley <justin.lindley@hp.com>
Signed-off-by: Stephen M. Cameron <scameron@beardog.cce.hp.com>
Reviewed-by: Stephen M. Cameron <scameron@beardog.cce.hp.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
10 years agohpsa: allow passthru ioctls to work with bidirectional commands
Stephen M. Cameron [Thu, 29 May 2014 15:52:41 +0000 (10:52 -0500)]
hpsa: allow passthru ioctls to work with bidirectional commands

Treat the the data direction bits as a bit mask allowing both
READ and WRITE at the same time instead of testing for equality
to see if it's a exclusively a READ or a WRITE.

Signed-off-by: Stephen M. Cameron <scameron@beardog.cce.hp.com>
Reviewed-by: Mike Miller <michael.miller@canonical.com>
Reviewed-by: Webb Scales <webb.scales@hp.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
10 years agohpsa: remove unused fields from struct ctlr_info
Stephen M. Cameron [Thu, 29 May 2014 15:52:31 +0000 (10:52 -0500)]
hpsa: remove unused fields from struct ctlr_info

The fields "major", "max_outstanding", and "usage_count"
of struct ctlr_info were not used for anything.

Signed-off-by: Stephen M. Cameron <scameron@beardog.cce.hp.com>
Reviewed-by: Mike Miller <michael.miller@canonical.com>
Reviewed-by: Webb Scales <webb.scales@hp.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
10 years agomvsas: Recognise device/subsystem 9485/9485 as 88SE9485
Ben Hutchings [Wed, 19 Feb 2014 01:06:42 +0000 (01:06 +0000)]
mvsas: Recognise device/subsystem 9485/9485 as 88SE9485

Matt Taggart reported that mvsas didn't bind to the Marvell
SAS controller on a Supermicro AOC-SAS2LP-MV8 board.

lspci reports it as:

01:00.0 RAID bus controller [0104]: Marvell Technology Group Ltd. Device [1b4b:9485] (rev 03)
        Subsystem: Marvell Technology Group Ltd. Device [1b4b:9485]
[...]

Add it to the device table as chip_9485.

Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
Reported-by: Matt Taggart <taggart@debian.org>
Tested-by: Matt Taggart <taggart@debian.org>
Acked-By: Jan "Yenya" Kasprzak <kas@fi.muni.cz>
Signed-off-by: Christoph Hellwig <hch@lst.de>
10 years agoRevert "be2iscsi: Fix processing cqe for cxn whose endpoint is freed"
Christoph Hellwig [Mon, 2 Jun 2014 07:52:52 +0000 (09:52 +0200)]
Revert "be2iscsi: Fix processing cqe for cxn whose endpoint is freed"

This reverts commit 11206081ad895d83e717bfe23603168dc307d904.

Based on comments from Mike Christie and Sony John-N.

10 years agomptfusion: fix msgContext in mptctl_hp_hostinfo
Tomas Henzl [Wed, 28 May 2014 16:04:20 +0000 (18:04 +0200)]
mptfusion: fix msgContext in mptctl_hp_hostinfo

Hi,

without this patch the istwiRWRequest->MsgContext is always set to zero,
this patch saves the MsgContext in a msgcontext variable and then restores
the value.
Thanks to  David Jeffery who found the issue and did the analysis.

Signed-off-by: Tomas Henzl <thenzl@redhat.com>
Acked-by: Desai, Kashyap <Kashyap.Desai@lsi.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
10 years agoacornscsi: remove linked command support
Paul Bolle [Sat, 24 May 2014 10:13:53 +0000 (12:13 +0200)]
acornscsi: remove linked command support

The acornscsi driver was added in v2.1.88. It has always #undef-ed
CONFIG_SCSI_ACORNSCSI_LINK near the top of acornscsi.c. And, just to be
sure, it has also always triggered a preprocessor error if
CONFIG_SCSI_ACORNSCSI_LINK was still defined. But, as far as I can see,
it has never even been possible to set SCSI_ACORNSCSI_LINK through
kconfig, or its predecessors, in the first place.

Let's remove the code involved.

Signed-off-by: Paul Bolle <pebolle@tiscali.nl>
Acked-by: Russell King <rmk+kernel@arm.linux.org.uk>
Acked-by: Hannes Reinecke <hare@suse.de>
Signed-off-by: Christoph Hellwig <hch@lst.de>
10 years agoscsi/NCR5380: dprintk macro
Finn Thain [Wed, 28 May 2014 14:43:43 +0000 (00:43 +1000)]
scsi/NCR5380: dprintk macro

This is the delta between the two submissions:
[PATCH 00/12] scsi/NCR5380: fix debugging macros and #include structure
and
[PATCH v2 00/12] scsi/NCR5380: fix debugging macros and #include structure

The macro definition changes were discussed on the mailing list during
review. The idea is to get the compiler to check the parameters of
disabled printk() calls so that the debugging code doesn't rot again.

Signed-off-by: Finn Thain <fthain@telegraphics.com.au>
Signed-off-by: Christoph Hellwig <hch@lst.de>
10 years agofusion: Remove use of DEF_SCSI_QCMD
Matthew Wilcox [Thu, 27 Mar 2014 20:40:36 +0000 (16:40 -0400)]
fusion: Remove use of DEF_SCSI_QCMD

Removing the host_lock from the I/O submission path gives a huge
scalability improvement.

Signed-off-by: Matthew Wilcox <matthew.r.wilcox@intel.com>
Reviewed-by: Nicholas Bellinger <nab@linux-iscsi.org>
Reviewed-by: Praveen Krishnamoorthy <Praveen.krishnamoorthy@lsi.com>
Acked-by: Sreekanth Reddy <Sreekanth.reddy@lsi.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
10 years agofusion: Add free msg frames to the head, not tail of list
Matthew Wilcox [Thu, 27 Mar 2014 20:40:35 +0000 (16:40 -0400)]
fusion: Add free msg frames to the head, not tail of list

Reusing a msg frame quickly means it's still cache-hot.  This yields
a small but noticable performance improvement in a well-known database
benchmark.  This improvement is already present in the mpt3sas driver.

Signed-off-by: Matthew Wilcox <matthew.r.wilcox@intel.com>
Reviewed-by: Nicholas Bellinger <nab@linux-iscsi.org>
Reviewed-by: Praveen Krishnamoorthy <Praveen.krishnamoorthy@lsi.com>
Acked-by: Sreekanth Reddy <Sreekanth.reddy@lsi.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
10 years agompt2sas: Add free smids to the head, not tail of list
Matthew Wilcox [Thu, 27 Mar 2014 20:40:34 +0000 (16:40 -0400)]
mpt2sas: Add free smids to the head, not tail of list

Reusing a smid quickly means it's still cache-hot.  This yields a small
but noticable performance improvement in a well-known database benchmark.
This improvement is already present in the mpt3sas driver.

Signed-off-by: Matthew Wilcox <matthew.r.wilcox@intel.com>
Reviewed-by: Nicholas Bellinger <nab@linux-iscsi.org>
Reviewed-by: Praveen Krishnamoorthy <Praveen.krishnamoorthy@lsi.com>
Acked-by: Sreekanth Reddy <Sreekanth.reddy@lsi.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
10 years agompt2sas: Remove use of DEF_SCSI_QCMD
Matthew Wilcox [Thu, 27 Mar 2014 20:40:33 +0000 (16:40 -0400)]
mpt2sas: Remove use of DEF_SCSI_QCMD

Removing the host_lock from the I/O submission path gives a huge
scalability improvement.

Signed-off-by: Matthew Wilcox <matthew.r.wilcox@intel.com>
Reviewed-by: Nicholas Bellinger <nab@linux-iscsi.org>
Reviewed-by: Praveen Krishnamoorthy <Praveen.krishnamoorthy@lsi.com>
Acked-by: Sreekanth Reddy <Sreekanth.reddy@lsi.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
10 years agompt2sas: Remove uses of serial_number
Matthew Wilcox [Thu, 27 Mar 2014 20:40:32 +0000 (16:40 -0400)]
mpt2sas: Remove uses of serial_number

The mpt2sas_scsih_issue_tm() function does not use the 'serial_number'
argument passed to it.  Removing it removes the last vestiges of the
scsi_cmnd's serial_number field from this driver.

Signed-off-by: Matthew Wilcox <matthew.r.wilcox@intel.com>
Reviewed-by: Nicholas Bellinger <nab@linux-iscsi.org>
Reviewed-by: Praveen Krishnamoorthy <Praveen.krishnamoorthy@lsi.com>
Acked-by: Sreekanth Reddy <Sreekanth.reddy@lsi.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
10 years agompt3sas: Remove use of DEF_SCSI_QCMD
Matthew Wilcox [Thu, 27 Mar 2014 20:40:31 +0000 (16:40 -0400)]
mpt3sas: Remove use of DEF_SCSI_QCMD

Removing the host_lock from the I/O submission path gives a huge
scalability improvement.

Signed-off-by: Matthew Wilcox <matthew.r.wilcox@intel.com>
Reviewed-by: Nicholas Bellinger <nab@linux-iscsi.org>
Reviewed-by: Praveen Krishnamoorthy <Praveen.krishnamoorthy@lsi.com>
Acked-by: Sreekanth Reddy <Sreekanth.reddy@lsi.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
10 years agompt3sas: Remove uses of serial_number
Matthew Wilcox [Thu, 27 Mar 2014 20:40:30 +0000 (16:40 -0400)]
mpt3sas: Remove uses of serial_number

The mpt3sas_scsih_issue_tm() function does not use the 'serial_number'
argument passed to it.  Removing it removes the last vestiges of the
scsi_cmnd's serial_number field from this driver.

Signed-off-by: Matthew Wilcox <matthew.r.wilcox@intel.com>
Reviewed-by: Nicholas Bellinger <nab@linux-iscsi.org>
Reviewed-by: Praveen Krishnamoorthy <Praveen.krishnamoorthy@lsi.com>
Acked-by: Sreekanth Reddy <Sreekanth.reddy@lsi.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
10 years agoqla2xxx: Use kmemdup instead of kmalloc + memcpy
Benoit Taine [Mon, 26 May 2014 15:21:16 +0000 (17:21 +0200)]
qla2xxx: Use kmemdup instead of kmalloc + memcpy

This issue was reported by coccicheck using the semantic patch
at scripts/coccinelle/api/memdup.cocci

Signed-off-by: Benoit Taine <benoit.taine@lip6.fr>
Acked-by: Saurav Kashyap <saurav.kashyap@qlogic.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
10 years agoqla4xxx: Use kmemdup instead of kmalloc + memcpy
Benoit Taine [Mon, 26 May 2014 15:21:13 +0000 (17:21 +0200)]
qla4xxx: Use kmemdup instead of kmalloc + memcpy

This issue was reported by coccicheck using the semantic patch
at scripts/coccinelle/api/memdup.cocci

Signed-off-by: Benoit Taine <benoit.taine@lip6.fr>
Acked-by: Vikas Chaudhary <vikas.chaudhary@qlogic.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
10 years agoqla2xxx: fix incorrect debug printk
Dan Carpenter [Mon, 5 May 2014 09:47:57 +0000 (12:47 +0300)]
qla2xxx: fix incorrect debug printk

There are missing curly braces here so it prints that the recovery
failed even when it succeeded.

Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Reviewed-by: Giridhar Malavali <giridhar.malavali@qlogic.com>
Acked-by: Chad Dupuis <chad.dupuis@qlogic.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
10 years agobe2iscsi: Bump the driver version
Jayamohan Kallickal [Tue, 6 May 2014 01:41:31 +0000 (21:41 -0400)]
be2iscsi: Bump the driver version

 Bumping the driver version.

Signed-off-by: John Soni Jose <sony.john-n@emulex.com>
Signed-off-by: Jayamohan Kallickal <jayamohan.kallickal@emulex.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
10 years agobe2iscsi: Fix processing cqe for cxn whose endpoint is freed
Jayamohan Kallickal [Tue, 6 May 2014 01:41:30 +0000 (21:41 -0400)]
be2iscsi: Fix processing cqe for cxn whose endpoint is freed

 During heavy IO in multipath environment with many active sessions
 and port-bouncing happening, there is a race condition because of
 which beiscsi_prcess_cqe() gets called for a connection whose
 endpoint is freed.

 Checking endpoint reference for a connection before processing in
 beiscsi_process_cq().

Signed-off-by: Minh Tran <minhduc.tran@emulex.com>
Signed-off-by: John Soni Jose <sony.john-n@emulex.com>
Signed-off-by: Jayamohan Kallickal <jayamohan.kallickal@emulex.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
10 years agobe2iscsi: Fix destroy MCC-CQ before MCC-EQ is destroyed
Jayamohan Kallickal [Tue, 6 May 2014 01:41:29 +0000 (21:41 -0400)]
be2iscsi: Fix destroy MCC-CQ before MCC-EQ is destroyed

 EQ teardown should happen only after all CQ are destroyed.
 In some FW config, adapter goes into a freeze state. This
 fix moves teardown of MCC-Q before the EQ teardown happens.

Signed-off-by: John Soni Jose <sony.john-n@emulex.com>
Signed-off-by: Jayamohan Kallickal <jayamohan.kallickal@emulex.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
10 years agobe2iscsi: Fix memory corruption in MBX path
Jayamohan Kallickal [Tue, 6 May 2014 01:41:28 +0000 (21:41 -0400)]
be2iscsi: Fix memory corruption in MBX path

 From: Dan Carpenter [mailto:dan.carpenter@oracle.com]
 Sent: Friday, March 28, 2014 1:42 AM
 Subject: re: [SCSI] be2iscsi: Fix handling timed out MBX completion from FW

 Hello Jayamohan Kallickal,

 The patch 1957aa7f6246: "[SCSI] be2iscsi: Fix handling timed out MBX completion from FW" from Jan 29, 2014, leads to the following static checker warning:

 drivers/scsi/be2iscsi/be_main.c:5581 beiscsi_dev_probe()
 error: memset() '&phba->ctrl.ptag_state[i]->tag_mem_state' too small (24 vs 32)

 drivers/scsi/be2iscsi/be_main.c
 5576          for (i = 0; i < MAX_MCC_CMD; i++) {
 5577                  init_waitqueue_head(&phba->ctrl.mcc_wait[i + 1]);
 5578                  phba->ctrl.mcc_tag[i] = i + 1;
 5579                  phba->ctrl.mcc_numtag[i + 1] = 0;
 5580                  phba->ctrl.mcc_tag_available++;
 5581                  memset(&phba->ctrl.ptag_state[i].tag_mem_state, 0,
 5582                         sizeof(struct beiscsi_mcc_tag_state));
                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 Probably this this be change to sizeof(struct be_dma_mem struct)?  It looks like we are corrupting memory a bit here.

 5583          }

 regards,
 dan carpenter

Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: John Soni Jose <sony.john-n@emulex.com>
Signed-off-by: Jayamohan Kallickal <jayamohan.kallickal@emulex.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
10 years agobe2iscsi: Fix TCP parameters while connection offloading.
Jayamohan Kallickal [Tue, 6 May 2014 01:41:27 +0000 (21:41 -0400)]
be2iscsi: Fix TCP parameters while connection offloading.

 SKH-R adapter, TCP Window Size/Scale parameters are passed
 in TCP Connection Offload Mbx Command.

Signed-off-by: Minh Tran <minhduc.tran@emulex.com>
Signed-off-by: John Soni Jose <sony.john-n@emulex.com>
Signed-off-by: Jayamohan Kallickal <jayamohan.kallickal@emulex.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
10 years agobe2iscsi: Fix interrupt Coalescing mechanism.
Jayamohan Kallickal [Tue, 6 May 2014 01:41:26 +0000 (21:41 -0400)]
be2iscsi: Fix interrupt Coalescing mechanism.

Signed-off-by: Minh Tran <minhduc.tran@emulex.com>
Signed-off-by: John Soni Jose <sony.john-n@emulex.com>
Signed-off-by: Jayamohan Kallickal <jayamohan.kallickal@emulex.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
10 years agobe2iscsi: Fix exposing Host in sysfs after adapter initialization is complete
Jayamohan Kallickal [Tue, 6 May 2014 01:41:25 +0000 (21:41 -0400)]
be2iscsi: Fix exposing Host in sysfs after adapter initialization is complete

 Before probe for function was completed, iSCSI Daemon had initiated login
 to target while OS was coming up. The targets which had node.startup=automatic,
 login process was initiated.Since function specific initialization was still in
 progress this lead to kernel panic.

 Fixed the issue by moving iscsi_host_add() call after adapter initialization
 is done.

Signed-off-by: John Soni Jose <sony.john-n@emulex.com>
Signed-off-by: Jayamohan Kallickal <jayamohan.kallickal@emulex.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
10 years agobe2iscsi: Fix retrieving MCCQ_WRB in non-embedded Mbox path
Jayamohan Kallickal [Tue, 6 May 2014 01:41:24 +0000 (21:41 -0400)]
be2iscsi: Fix retrieving MCCQ_WRB in non-embedded Mbox path

 Getting WRB for MCCQ posting was done before looking if tag is
 available or not. This lead to increase phba->ctrl.mcc_obj.q.used
 variable and the WARN_ON message was coming from wrb_from_mccq().
 Moved getting wrb from mccq after checking for the tag.

 In wrb_from_mccq(), memset is done before returning wrb ptr.
 Removed memset of mccq wrb from all other functions.

Signed-off-by: John Soni Jose <sony.john-n@emulex.com>
Signed-off-by: Jayamohan Kallickal <jayamohan.kallickal@emulex.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
10 years agoscsi: ufs: Improve UFS fatal error handling
Sujit Reddy Thumma [Mon, 26 May 2014 05:29:15 +0000 (10:59 +0530)]
scsi: ufs: Improve UFS fatal error handling

Error handling in UFS driver is broken and resets the host controller
for fatal errors without re-initialization. Correct the fatal error
handling sequence according to UFS Host Controller Interface (HCI)
v1.1 specification.

o Processed requests which are completed w/wo error are reported to
  SCSI layer and any pending commands that are not started are aborted
  in the controller and re-queued into scsi mid-layer queue.

o Upon determining fatal error condition the host controller may hang
  forever until a reset is applied. Block SCSI layer for sending new
  requests and apply reset in a separate error handling work.

o SCSI is informed about the expected Unit-Attention exception from the
  device for the immediate command after a reset so that the SCSI layer
  take necessary steps to establish communication with the device.

Signed-off-by: Sujit Reddy Thumma <sthumma@codeaurora.org>
Reviewed-by: Yaniv Gardi <ygardi@codeaurora.org>
Tested-by: Dolev Raviv <draviv@codeaurora.org>
Acked-by: Vinayak Holikatti <vinholikatti@gmail.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
10 years agoscsi: ufs: Fix device and host reset methods
Sujit Reddy Thumma [Mon, 26 May 2014 05:29:14 +0000 (10:59 +0530)]
scsi: ufs: Fix device and host reset methods

As of now SCSI initiated error handling is broken because,
the reset APIs don't try to bring back the device initialized and
ready for further transfers.

In case of timeouts, the scsi error handler takes care of handling aborts
and resets. Improve the error handling in such scenario by resetting the
device and host and re-initializing them in proper manner.

Signed-off-by: Sujit Reddy Thumma <sthumma@codeaurora.org>
Reviewed-by: Yaniv Gardi <ygardi@codeaurora.org>
Tested-by: Dolev Raviv <draviv@codeaurora.org>
Acked-by: Vinayak Holikatti <vinholikatti@gmail.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
10 years agoscsi: ufs: Fix hardware race conditions while aborting a command
Sujit Reddy Thumma [Mon, 26 May 2014 05:29:13 +0000 (10:59 +0530)]
scsi: ufs: Fix hardware race conditions while aborting a command

There is a possible race condition in the hardware when the abort
command is issued to terminate the ongoing SCSI command as described
below:

- A bit in the door-bell register is set in the controller for a
  new SCSI command.
- In some rare situations, before controller get a chance to issue
  the command to the device, the software issued an abort command.
- If the device recieves abort command first then it returns success
  because the command itself is not present.
- Now if the controller commits the command to device it will be
  processed.
- Software thinks that command is aborted and proceed while still
  the device is processing it.
- The software, controller and device may go out of sync because of
  this race condition.

To avoid this, query task presence in the device before sending abort
task command so that after the abort operation, the command is guaranteed
to be non-existent in both controller and the device.

Signed-off-by: Sujit Reddy Thumma <sthumma@codeaurora.org>
Reviewed-by: Yaniv Gardi <ygardi@codeaurora.org>
Tested-by: Dolev Raviv <draviv@codeaurora.org>
Acked-by: Vinayak Holikatti <vinholikatti@gmail.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
10 years agoscsi: ufs: Fix broken task management command implementation
Sujit Reddy Thumma [Mon, 26 May 2014 05:29:12 +0000 (10:59 +0530)]
scsi: ufs: Fix broken task management command implementation

Currently, sending Task Management (TM) command to the card might
be broken in some scenarios as listed below:

Problem: If there are more than 8 TM commands the implementation
         returns error to the caller.
Fix:     Wait for one of the slots to be emptied and send the command.

Problem: Sometimes it is necessary for the caller to know the TM service
         response code to determine the task status.
Fix:     Propogate the service response to the caller.

Problem: If the TM command times out no proper error recovery is
         implemented.
Fix:     Clear the command in the controller door-bell register, so that
         further commands for the same slot don't fail.

Problem: While preparing the TM command descriptor, the task tag used
         should be unique across SCSI/NOP/QUERY/TM commands and not the
 task tag of the command which the TM command is trying to manage.
Fix:     Use a unique task tag instead of task tag of SCSI command.

Problem: Since the TM command involves H/W communication, abruptly ending
         the request on kill interrupt signal might cause h/w malfunction.
Fix:     Wait for hardware completion interrupt with TASK_UNINTERRUPTIBLE
         set.

Signed-off-by: Sujit Reddy Thumma <sthumma@codeaurora.org>
Reviewed-by: Yaniv Gardi <ygardi@codeaurora.org>
Tested-by: Dolev Raviv <draviv@codeaurora.org>
Acked-by: Vinayak Holikatti <vinholikatti@gmail.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
10 years agoscsi: ufs: make undeclared functions static
Sujit Reddy Thumma [Mon, 26 May 2014 05:29:11 +0000 (10:59 +0530)]
scsi: ufs: make undeclared functions static

Make undeclared functions static and declare exported symbols
to suppress warnings from sparse tool.

Signed-off-by: Sujit Reddy Thumma <sthumma@codeaurora.org>
Acked-by: Vinayak Holikatti <vinholikatti@gmail.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
10 years agoscsi: ufs: fix endianness sparse warnings
Sujit Reddy Thumma [Mon, 26 May 2014 05:29:10 +0000 (10:59 +0530)]
scsi: ufs: fix endianness sparse warnings

Fix many warnings with incorrect endian assumptions
which makes the code unportable to new architectures.

The UFS specification defines the byte order as big-endian
for UPIU structure and little-endian for the host controller
transfer/task management descriptors.

Signed-off-by: Sujit Reddy Thumma <sthumma@codeaurora.org>
Acked-by: Vinayak Holikatti <vinholikatti@gmail.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
10 years agohpsa: fix bad comparison of signed with unsigned in hpsa_update_scsi_devices
Joe Handzik [Wed, 21 May 2014 16:16:01 +0000 (11:16 -0500)]
hpsa: fix bad comparison of signed with unsigned in hpsa_update_scsi_devices

rescan_hba_mode was defined as a u8 so could never be less than zero:

        rescan_hba_mode = hpsa_hba_mode_enabled(h);
        if (rescan_hba_mode < 0)
                goto out;

Signed-off-by: Joe Handzik <joseph.t.handzik@hp.com>
Signed-off-by: Stephen M. Cameron <scameron@beardog.cce.hp.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
10 years agoscsi/NCR5380: merge sun3_scsi_vme.c into sun3_scsi.c
Finn Thain [Tue, 18 Mar 2014 00:42:24 +0000 (11:42 +1100)]
scsi/NCR5380: merge sun3_scsi_vme.c into sun3_scsi.c

The sun3 drivers suffer from a whole bunch of duplicated code. Fix this
by following the g_NCR5380_mmio example. (Notionally, sun3_scsi relates to
sun3_scsi_vme in the same way that g_NCR5380 relates to g_NCR5380_mmio.)

Dead code is also removed: we now have working debug macros so
SUN3_SCSI_DEBUG is undesirable. Dead code within #ifdef OLD_DMA is also
dropped, consistent with sun3_scsi_vme.c.

Signed-off-by: Finn Thain <fthain@telegraphics.com.au>
Acked-by: Sam Creasey <sammy@sammy.net>
Signed-off-by: Christoph Hellwig <hch@lst.de>
10 years agoscsi/NCR5380: reduce depth of sun3_scsi nested includes
Finn Thain [Tue, 18 Mar 2014 00:42:23 +0000 (11:42 +1100)]
scsi/NCR5380: reduce depth of sun3_scsi nested includes

Move the #include "NCR5380.h" out of the sun3_scsi.h header file and into
the driver .c files, like all the other NCR5380 drivers in the tree.

This improves uniformity and reduces the depth of nested includes. The
sequence of #include's, #define's and #if's no longer does my head in.

Signed-off-by: Finn Thain <fthain@telegraphics.com.au>
Acked-by: Sam Creasey <sammy@sammy.net>
Signed-off-by: Christoph Hellwig <hch@lst.de>
10 years agoscsi/NCR5380: remove unused macro definitions
Finn Thain [Tue, 18 Mar 2014 00:42:22 +0000 (11:42 +1100)]
scsi/NCR5380: remove unused macro definitions

Remove the unused (and divergent) debugging macro definitions from
the sun3_NCR5380 and atari_NCR5380 drivers. These drivers have been
converted to use the common macros in NCR5380.h.

Signed-off-by: Finn Thain <fthain@telegraphics.com.au>
Acked-by: Sam Creasey <sammy@sammy.net>
Acked-by: Michael Schmitz <schmitz@debian.org>
Signed-off-by: Christoph Hellwig <hch@lst.de>
10 years agoscsi/NCR5380: fix and standardize NDEBUG macros
Finn Thain [Tue, 18 Mar 2014 00:42:21 +0000 (11:42 +1100)]
scsi/NCR5380: fix and standardize NDEBUG macros

All three NCR5380 core driver implementations share the same NCR5380.h
header file so they need to agree on certain macro definitions.

The flag bit used by the NDEBUG_MERGING macro in atari_NCR5380 and
sun3_NCR5380 collides with the bit used by NDEBUG_LISTS.

Moreover, NDEBUG_ABORT appears in NCR5380.c so it should be defined in
NCR5380.h rather than in each of the many drivers using that core.

An undefined NDEBUG_ABORT macro caused compiler errors and led to dodgy
workarounds in the core driver that can now be removed.
(See commits f566a576bca09de85bf477fc0ab2c8c96405b77b and
185a7a1cd79b9891e3c17abdb103ba1c98d6ca7a.)

Move all of the NDEBUG_ABORT, NDEBUG_TAGS and NDEBUG_MERGING macro
definitions into NCR5380.h where all the other NDEBUG macros live.

Also, incorrect "#ifdef NDEBUG" becomes "#if NDEBUG" to fix the warning:
drivers/scsi/mac_scsi.c: At top level:
drivers/scsi/NCR5380.c:418: warning: 'NCR5380_print' defined but not used
drivers/scsi/NCR5380.c:459: warning: 'NCR5380_print_phase' defined but not used

The debugging code is now enabled when NDEBUG != 0.

Signed-off-by: Finn Thain <fthain@telegraphics.com.au>
Acked-by: Sam Creasey <sammy@sammy.net>
Signed-off-by: Christoph Hellwig <hch@lst.de>
10 years agoscsi/NCR5380: adopt dprintk()
Finn Thain [Tue, 18 Mar 2014 00:42:20 +0000 (11:42 +1100)]
scsi/NCR5380: adopt dprintk()

All NCR5380 drivers already include the NCR5380.h header. Better to
adopt those macros rather than have three variations on them.

Moreover, the macros in NCR5380.h are preferable because the atari_NCR5380
and sun3_NCR5380 versions are inflexible. For example, they can't accomodate
dprintk(NDEBUG_MAIN | NDEBUG_QUEUES, ...)

Replace the *_PRINTK macros from atari_NCR5380.h and sun3_NCR5380.h with
the equivalent macros from NCR5380.h.

Signed-off-by: Finn Thain <fthain@telegraphics.com.au>
Acked-by: Sam Creasey <sammy@sammy.net>
Acked-by: Michael Schmitz <schmitz@debian.org>
Signed-off-by: Christoph Hellwig <hch@lst.de>
10 years agoscsi/NCR5380: adopt NCR5380_dprint() and NCR5380_dprint_phase()
Finn Thain [Tue, 18 Mar 2014 00:42:19 +0000 (11:42 +1100)]
scsi/NCR5380: adopt NCR5380_dprint() and NCR5380_dprint_phase()

All NCR5380 drivers already include the NCR5380.h header. Better to
adopt those macros rather than have three variations on them.

Moreover, the macros in NCR5380.h are preferable anyway: the atari_NCR5380
and sun3_NCR5380 versions are inflexible. For example, they can't accomodate
NCR5380_dprint(NDEBUG_MAIN | NDEBUG_QUEUES, ...)

Replace the NCR_PRINT* macros from atari_NCR5380.h and sun3_NCR5380.h with
the equivalent macros from NCR5380.h.

Signed-off-by: Finn Thain <fthain@telegraphics.com.au>
Acked-by: Sam Creasey <sammy@sammy.net>
Acked-by: Michael Schmitz <schmitz@debian.org>
Signed-off-by: Christoph Hellwig <hch@lst.de>
10 years agoscsi/NCR5380: fix dprintk macro usage and definition
Finn Thain [Tue, 18 Mar 2014 00:42:18 +0000 (11:42 +1100)]
scsi/NCR5380: fix dprintk macro usage and definition

There are three implementations of the core NCR5380 driver and three sets
of debugging macro definitions. And all three implementations use the
NCR5380.h header as well.

Two of the definitions of the dprintk macro accept a variable argument list
whereas the third does not. Standardize on the variable argument list.

Signed-off-by: Finn Thain <fthain@telegraphics.com.au>
Acked-by: Sam Creasey <sammy@sammy.net>
Signed-off-by: Christoph Hellwig <hch@lst.de>
10 years agoscsi/NCR5380: fix build failures when debugging is enabled
Finn Thain [Tue, 18 Mar 2014 00:42:17 +0000 (11:42 +1100)]
scsi/NCR5380: fix build failures when debugging is enabled

The change from cmd->target to cmd->device->id was apparently the purpose of
commit a7f251228390e87d86c5e3846f99a455517fdd8e in
kernel/git/tglx/history.git but some instances have been missed.

Also fix the "NDEBUG_LAST_WRITE_SENT" and "NDEBUG_ALL" typo's.

Also fix some format strings (%ul becomes %lu) that caused compiler warnings.

Signed-off-by: Finn Thain <fthain@telegraphics.com.au>
Acked-by: Sam Creasey <sammy@sammy.net>
Signed-off-by: Christoph Hellwig <hch@lst.de>
10 years agoscsi/NCR5380: use NCR5380_dprint() instead of NCR5380_print()
Finn Thain [Tue, 18 Mar 2014 00:42:16 +0000 (11:42 +1100)]
scsi/NCR5380: use NCR5380_dprint() instead of NCR5380_print()

Only the NCR5380_dprint() macro should invoke the NCR5380_print() function.
That's why NCR5380.c only defines the function #if NDEBUG. Use the standard
macro.

Signed-off-by: Finn Thain <fthain@telegraphics.com.au>
Acked-by: Sam Creasey <sammy@sammy.net>
Signed-off-by: Christoph Hellwig <hch@lst.de>
10 years agoscsi/NCR5380: remove old CVS keywords
Finn Thain [Tue, 18 Mar 2014 00:42:15 +0000 (11:42 +1100)]
scsi/NCR5380: remove old CVS keywords

Signed-off-by: Finn Thain <fthain@telegraphics.com.au>
Acked-by: Sam Creasey <sammy@sammy.net>
Signed-off-by: Christoph Hellwig <hch@lst.de>
10 years agoscsi/NCR5380: remove redundant HOSTS_C macro tests
Finn Thain [Tue, 18 Mar 2014 00:42:14 +0000 (11:42 +1100)]
scsi/NCR5380: remove redundant HOSTS_C macro tests

HOSTS_C is always undefined. There is no hosts.c anymore.

Signed-off-by: Finn Thain <fthain@telegraphics.com.au>
Acked-by: Sam Creasey <sammy@sammy.net>
Signed-off-by: Christoph Hellwig <hch@lst.de>
10 years agoscsi/NCR5380: remove unused BOARD_NORMAL and BOARD_NCR53C400
Finn Thain [Tue, 18 Mar 2014 00:42:13 +0000 (11:42 +1100)]
scsi/NCR5380: remove unused BOARD_NORMAL and BOARD_NCR53C400

BOARD_NORMAL is completely unused and BOARD_NCR53C400 is used only by
g_NCR5380 internally. Remove the unused definitions.

Signed-off-by: Finn Thain <fthain@telegraphics.com.au>
Acked-by: Sam Creasey <sammy@sammy.net>
Signed-off-by: Christoph Hellwig <hch@lst.de>
10 years agoscsi_debug: simple short transfer injection
Christoph Hellwig [Thu, 1 May 2014 14:51:51 +0000 (16:51 +0200)]
scsi_debug: simple short transfer injection

Add an option to only transfer half the data for every n-th command.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Acked-by: Douglas Gilbert <dgilbert@interlog.com>
Reviewed-by: Nicholas Bellinger <nab@linux-iscsi.org>
10 years agovirtio_scsi: use cmd_size
Christoph Hellwig [Thu, 1 May 2014 14:51:50 +0000 (16:51 +0200)]
virtio_scsi: use cmd_size

Taken almost entirely from Nicholas Bellinger's scsi-mq conversion.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Acked-by: Paolo Bonzini <pbonzini@redhat.com>
Reviewed-by: Nicholas Bellinger <nab@linux-iscsi.org>
10 years agobnx2fc: fix memory leak in bnx2fc_allocate_hash_table()
Maurizio Lombardi [Tue, 1 Apr 2014 11:58:22 +0000 (13:58 +0200)]
bnx2fc: fix memory leak in bnx2fc_allocate_hash_table()

In case of error, the bnx2fc_allocate_hash_table() didn't free
all the memory it allocated.

Signed-off-by: Maurizio Lombardi <mlombard@redhat.com>
Acked-by: Eddie Wai <eddie.wai@broadcom.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
10 years agobnx2fc: fix memory leak and potential NULL pointer dereference.
Maurizio Lombardi [Tue, 1 Apr 2014 11:58:21 +0000 (13:58 +0200)]
bnx2fc: fix memory leak and potential NULL pointer dereference.

If bnx2fc_allocate_hash_table() for some reasons fails, it is possible that the
hash_tbl_segments or the hash_tbl_pbl pointers are NULL.
In this case bnx2fc_free_hash_table() will panic the system.

this patch also fixes a memory leak, the hash_tbl_segments pointer was never
freed.

Signed-off-by: Maurizio Lombardi <mlombard@redhat.com>
Acked-by: Eddie Wai <eddie.wai@broadcom.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
10 years agobnx2fc: remove unused variable hash_table_size
Maurizio Lombardi [Tue, 1 Apr 2014 11:58:20 +0000 (13:58 +0200)]
bnx2fc: remove unused variable hash_table_size

hash_table_size is not used by the bnx2fc_free_hash_table() function.

Signed-off-by: Maurizio Lombardi <mlombard@redhat.com>
Acked-by: Eddie Wai <eddie.wai@broadcom.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
10 years agohpsa: do not ignore failure of sense controller parameters command
Joe Handzik [Thu, 15 May 2014 20:44:47 +0000 (15:44 -0500)]
hpsa: do not ignore failure of sense controller parameters command

Signed-off-by: Joe Handzik <joseph.t.handzik@hp.com>
Signed-off-by: Stephen M. Cameron <scameron@beardog.cce.hp.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
10 years agohpsa: fix memory leak in hpsa_hba_mode_enabled
Joe Handzik [Thu, 15 May 2014 20:44:42 +0000 (15:44 -0500)]
hpsa: fix memory leak in hpsa_hba_mode_enabled

And while we're at it fix a magic number

Signed-off-by: Joe Handzik <joseph.t.handzik@hp.com>
Signed-off-by: Stephen M. Cameron <scameron@beardog.cce.hp.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
10 years agohpsa: add new Smart Array PCI IDs (May 2014)
Joe Handzik [Thu, 8 May 2014 19:27:24 +0000 (14:27 -0500)]
hpsa: add new Smart Array PCI IDs (May 2014)

Signed-off-by: Scott Teel <scott.teel@hp.com>
Signed-off-by: Joe Handzik <joseph.t.handzik@hp.com>
Signed-off-by: Stephen M. Cameron <scameron@beardog.cce.hp.com>
Cc: stable@vger.kernel.org
Signed-off-by: Christoph Hellwig <hch@lst.de>
10 years agohpsa: Checking for a NULL return from a kzalloc call
Joe Handzik [Wed, 26 Mar 2014 22:48:11 +0000 (17:48 -0500)]
hpsa: Checking for a NULL return from a kzalloc call

Checking for a NULL return from a kzalloc call in hpsa_get_pdisk_of_ioaccel2.

Signed-off-by: Scott Teel <scott.teel@hp.com>
Signed-off-by: Joe Handzik <joseph.t.handzik@hp.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
10 years agopm80xx : Fix missing NULL pointer checks and memory leaks
Suresh Thiagarajan [Fri, 9 May 2014 06:01:01 +0000 (11:31 +0530)]
pm80xx : Fix missing NULL pointer checks and memory leaks

Checking return value for the memory allocattion and freeing it
while exiting the function

Signed-off-by: Viswas G <Viswas.G@pmcs.com>
Signed-off-by: Suresh Thiagarajan <Suresh.Thiagarajan@pmcs.com>
Reviewed-by: Tomas Henzl <thenzl@redhat.com>
Acked-by: Jack Wang <xjtuwjp@gmail.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
10 years agovirtio_scsi: remove ACCESS_ONCE() and smp_read_barrier_depends()
Ming Lei [Thu, 8 May 2014 07:23:45 +0000 (15:23 +0800)]
virtio_scsi: remove ACCESS_ONCE() and smp_read_barrier_depends()

Access to tgt->req_vq is strictly serialized by spin_lock
of tgt->tgt_lock, so the ACCESS_ONCE() isn't necessary.

smp_read_barrier_depends() in virtscsi_req_done was introduced
to order reading req_vq and decreasing tgt->reqs, but it isn't
needed now because req_vq is read from
scsi->req_vqs[vq->index - VIRTIO_SCSI_VQ_BASE] instead of
tgt->req_vq, so remove the unnecessary barrier.

Also remove related comment about the barrier.

Signed-off-by: Ming Lei <tom.leiming@gmail.com>
Acked-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
10 years agolpfc: Add iotag memory barrier
James Smart [Wed, 7 May 2014 21:16:46 +0000 (17:16 -0400)]
lpfc: Add iotag memory barrier

Add a memory barrier to ensure the valid bit is read before
any of the cqe payload is read. This fixes an issue seen
on Power where the cqe payload was getting loaded before
the valid bit. When this occurred, we saw an iotag out of
range error when a command completed, but since the iotag
looked invalid the command didn't get completed to scsi core.
Later we hit the command timeout, attempted to abort the command,
then waited for the aborted command to get returned. Since the
adapter already returned the command, we timeout waiting,
and end up escalating EEH all the way to host reset. This
patch fixes this issue.

Signed-off-by: Brian King <brking@linux.vnet.ibm.com>
Signed-off-by: James Smart <james.smart@emulex.com>
 ---

 lpfc_sli.c |   21 +++++++++++++++++++++
 1 file changed, 21 insertions(+)
Signed-off-by: Christoph Hellwig <hch@lst.de>
10 years agoMAINTAINERS: add an entry for all the NCR5380 drivers
Finn Thain [Mon, 5 May 2014 05:35:30 +0000 (15:35 +1000)]
MAINTAINERS: add an entry for all the NCR5380 drivers

Signed-off-by: Finn Thain <fthain@telegraphics.com.au>
Acked-by: Michael Schmitz <schmitzmic@gmail.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
10 years agom68k/atari - atari_scsi: change abort/reset return codes
Michael Schmitz [Fri, 2 May 2014 08:43:01 +0000 (20:43 +1200)]
m68k/atari - atari_scsi: change abort/reset return codes

[Resend of earlier patch - added equivalent changes to sun3 NCR5380 code]

The abort/reset lowlevel return codes had changed with the new
error SCSI handling - update Atari and Sun3 NCR5380 drivers to reflect this.

Change reset handling for Atari to clear queues only, do not attempt
to call done() on each command aborted by the reset. The EH code
should do that for us. Queues _must_ be cleared, otherwise
atari_scsi_bus_reset will not release the ST-DMA lock, deadlocking
further error recovery.

Update the Sun3 NCR5380 driver as well - the Sun3 driver was
derived from the Atari one. Kudos to Finn Thain for the Sun3 part
and cleaning up the header files. After the header cleanup, the
initio.h include (!) can be dropped from sun3_scsi.h now.

Signed-off-by: Michael Schmitz <schmitz@debian.org>
Signed-off-by: Finn Thain <fthain@telegraphics.com.au>
Acked-by: Sam Creasey <sammy@sammy.net>
Cc: Geert Uytterhoeven <geert@linux-m68k.org>
Cc: James E.J. Bottomley <JBottomley@parallels.com>
Cc: linux-scsi@vger.kernel.org
Signed-off-by: Christoph Hellwig <hch@lst.de>
10 years agoaic79xx: fix misuse of static variables
Mathias Krause [Thu, 1 May 2014 09:48:25 +0000 (11:48 +0200)]
aic79xx: fix misuse of static variables

The format strings for various printk()s make use of a temporary
variable that is declared 'static'. This is probably not intended,
so fix those.

Found in the PaX patch, written by the PaX Team.

Signed-off-by: Mathias Krause <minipli@googlemail.com>
Acked-by: Hannes Reinecke <hare@suse.de>
Cc: "James E.J. Bottomley" <JBottomley@parallels.com>
Cc: PaX Team <pageexec@freemail.hu>
Signed-off-by: Christoph Hellwig <hch@lst.de>
10 years agoesas2r: Fix comment
Marek Vasut [Tue, 22 Apr 2014 18:23:39 +0000 (20:23 +0200)]
esas2r: Fix comment

Minor fix for a message in the driver so that it matches the function name.

Signed-off-by: Marek Vasut <marex@denx.de>
Cc: James Bottomley <JBottomley@Parallels.com>
Cc: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>
Acked-by: Bradley Grove <bgrove@attotech.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
10 years agobfa: allocate memory with GFP_ATOMIC in spinlock context
Alexey Khoroshilov [Fri, 18 Apr 2014 07:58:42 +0000 (00:58 -0700)]
bfa: allocate memory with GFP_ATOMIC in spinlock context

bfa_fcb_pbc_vport_create() is called only from bfa_fcs_pbc_vport_init(),
that is called only from bfad_drv_start() with bfad_lock spinlock held.
So the patch replaces GFP_KERNEL with GFP_ATOMIC to avoid
sleeping in atomic spinlock context.

Found by Linux Driver Verification project (linuxtesting.org).

Signed-off-by: Alexey Khoroshilov <khoroshilov@ispras.ru>
Acked-by: Anil Gurumurthy <anil.gurumurthy@qlogic.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
10 years agoqla4xxx: Update driver version to 5.04.00-k6
Vikas Chaudhary [Thu, 10 Apr 2014 01:12:29 +0000 (21:12 -0400)]
qla4xxx: Update driver version to 5.04.00-k6

Signed-off-by: Vikas Chaudhary <vikas.chaudhary@qlogic.com>
Reviewed-by: Mike Christie <michaelc@cs.wisc.edu>
Signed-off-by: Christoph Hellwig <hch@lst.de>
10 years agoqla4xxx: Fix smatch warning in func qla4xxx_conn_get_param
Adheer Chandravanshi [Thu, 10 Apr 2014 01:12:28 +0000 (21:12 -0400)]
qla4xxx: Fix smatch warning in func qla4xxx_conn_get_param

Signed-off-by: Vikas Chaudhary <vikas.chaudhary@qlogic.com>
Reviewed-by: Mike Christie <michaelc@cs.wisc.edu>
Signed-off-by: Christoph Hellwig <hch@lst.de>
10 years agoqla4xxx: Fix smatch warning in func qla4xxx_get_ep_param
Adheer Chandravanshi [Thu, 10 Apr 2014 01:12:27 +0000 (21:12 -0400)]
qla4xxx: Fix smatch warning in func qla4xxx_get_ep_param

Fix following smatch warning:-
 drivers/scsi/qla4xxx/ql4_os.c:1752 qla4xxx_get_ep_param() warn: variable dereferenced before check 'qla_ep' (see line 1745)

Signed-off-by: Vikas Chaudhary <vikas.chaudhary@qlogic.com>
Reviewed-by: Mike Christie <michaelc@cs.wisc.edu>
Signed-off-by: Christoph Hellwig <hch@lst.de>
10 years agoqla4xxx: Fix memory leak for ha->saved_acb
Nilesh Javali [Thu, 10 Apr 2014 01:12:26 +0000 (21:12 -0400)]
qla4xxx: Fix memory leak for ha->saved_acb

Signed-off-by: Vikas Chaudhary <vikas.chaudhary@qlogic.com>
Reviewed-by: Mike Christie <michaelc@cs.wisc.edu>
Signed-off-by: Christoph Hellwig <hch@lst.de>
10 years agoqla4xxx: Export sysfs DDBs from DPC handler
Nilesh Javali [Thu, 10 Apr 2014 01:12:25 +0000 (21:12 -0400)]
qla4xxx: Export sysfs DDBs from DPC handler

Issue:
modprobe qla4xxx is killed by systemd due to timeout.

Solution:
The exporting of sysfs DDBs from qla4xxx_probe_adapter added delay of
approximately 15s due to which system-udevd killed the modprobe of the
driver. Added fix to export the sysfs DDBs from the DPC handler.

Signed-off-by: Nilesh Javali <nilesh.javali@qlogic.com>
Signed-off-by: Vikas Chaudhary <vikas.chaudhary@qlogic.com>
Reviewed-by: Mike Christie <michaelc@cs.wisc.edu>
Signed-off-by: Christoph Hellwig <hch@lst.de>
10 years agoqla4xxx: Disable INTx interrupt for ISP82XX
Tej Parkash [Thu, 10 Apr 2014 01:12:24 +0000 (21:12 -0400)]
qla4xxx: Disable INTx interrupt for ISP82XX

Signed-off-by: Tej Parkash <tej.parkash@qlogic.com>
Signed-off-by: Vikas Chaudhary <vikas.chaudhary@qlogic.com>
Reviewed-by: Mike Christie <michaelc@cs.wisc.edu>
Signed-off-by: Christoph Hellwig <hch@lst.de>
10 years agoqla4xxx: Update driver version to 5.04.00-k5
Vikas Chaudhary [Tue, 25 Feb 2014 03:07:05 +0000 (22:07 -0500)]
qla4xxx: Update driver version to 5.04.00-k5

Signed-off-by: Vikas Chaudhary <vikas.chaudhary@qlogic.com>
Reviewed-by: Mike Christie <michaelc@cs.wisc.edu>
Signed-off-by: Christoph Hellwig <hch@lst.de>
10 years agoqla4xxx: Fix memory leak in func qla4_84xx_config_acb()
Vikas Chaudhary [Tue, 25 Feb 2014 03:07:04 +0000 (22:07 -0500)]
qla4xxx: Fix memory leak in func qla4_84xx_config_acb()

Use correct goto statement to free dma memory in case of
failure in function qla4_84xx_config_acb()

Signed-off-by: Vikas Chaudhary <vikas.chaudhary@qlogic.com>
Reviewed-by: Mike Christie <michaelc@cs.wisc.edu>
Signed-off-by: Christoph Hellwig <hch@lst.de>
10 years agoqla4xxx: Initialize hardware queue for ISP40XX
Vikas Chaudhary [Tue, 25 Feb 2014 03:07:03 +0000 (22:07 -0500)]
qla4xxx: Initialize hardware queue for ISP40XX

Issue:
System crash while target discovery for ISP40XX

Root cause:
Function qla4xxx_init_rings() is not called for ISP40XX

Fix:
Call function qla4xxx_init_rings() for ISP40XX from
qla4xxx_start_firmware().

Signed-off-by: Vikas Chaudhary <vikas.chaudhary@qlogic.com>
Reviewed-by: Mike Christie <michaelc@cs.wisc.edu>
Signed-off-by: Christoph Hellwig <hch@lst.de>
10 years agoqla4xxx: Check for correct return status
Vikas Chaudhary [Tue, 25 Feb 2014 03:07:02 +0000 (22:07 -0500)]
qla4xxx: Check for correct return status

Check for correct return status in function -
qla4_8xxx_minidump_pex_dma_read

Signed-off-by: Vikas Chaudhary <vikas.chaudhary@qlogic.com>
Reviewed-by: Mike Christie <michaelc@cs.wisc.edu>
Signed-off-by: Christoph Hellwig <hch@lst.de>
10 years agoqla4xxx: qla4xxx: Move qla4_8xxx_ms_mem_write_128b to ql4_nx.c
Vikas Chaudhary [Tue, 25 Feb 2014 03:07:01 +0000 (22:07 -0500)]
qla4xxx: qla4xxx: Move qla4_8xxx_ms_mem_write_128b to ql4_nx.c

Signed-off-by: Vikas Chaudhary <vikas.chaudhary@qlogic.com>
Reviewed-by: Mike Christie <michaelc@cs.wisc.edu>
Signed-off-by: Christoph Hellwig <hch@lst.de>
10 years agoqla4xxx: Added PEX DMA Support for ISP8022 Adapter
Tej Parkash [Tue, 25 Feb 2014 03:07:00 +0000 (22:07 -0500)]
qla4xxx: Added PEX DMA Support for ISP8022 Adapter

Signed-off-by: Tej Parkash <tej.parkash@qlogic.com>
Signed-off-by: Vikas Chaudhary <vikas.chaudhary@qlogic.com>
Reviewed-by: Mike Christie <michaelc@cs.wisc.edu>
Signed-off-by: Christoph Hellwig <hch@lst.de>
10 years agoqla4xxx: Added new opcodes for 84XX Minidump template
Tej Parkash [Tue, 25 Feb 2014 03:06:59 +0000 (22:06 -0500)]
qla4xxx: Added new opcodes for 84XX Minidump template

Updated driver with new opcode (RDDFE, RDMDIO and POLLWR) which are
added with latest firmware minidump template

Signed-off-by: Tej Parkash <tej.parkash@qlogic.com>
Signed-off-by: Vikas Chaudhary <vikas.chaudhary@qlogic.com>
Reviewed-by: Mike Christie <michaelc@cs.wisc.edu>
Signed-off-by: Christoph Hellwig <hch@lst.de>
10 years agoqla4xxx: Add support of 0xFF capture mask for minidump
Tej Parkash [Tue, 25 Feb 2014 03:06:58 +0000 (22:06 -0500)]
qla4xxx: Add support of 0xFF capture mask for minidump

Signed-off-by: Tej Parkash <tej.parkash@qlogic.com>
Signed-off-by: Vikas Chaudhary <vikas.chaudhary@qlogic.com>
Reviewed-by: Mike Christie <michaelc@cs.wisc.edu>
Signed-off-by: Christoph Hellwig <hch@lst.de>
10 years agoqla4xxx: Change default capture to firmware defined capture mask
Tej Parkash [Tue, 25 Feb 2014 03:06:57 +0000 (22:06 -0500)]
qla4xxx: Change default capture to firmware defined capture mask

Signed-off-by: Tej Parkash <tej.parkash@qlogic.com>
Signed-off-by: Vikas Chaudhary <vikas.chaudhary@qlogic.com>
Reviewed-by: Mike Christie <michaelc@cs.wisc.edu>
Signed-off-by: Christoph Hellwig <hch@lst.de>
10 years agoqla4xxx: Do not wait for IO completion, after issuing stop_firmware
Tej Parkash [Tue, 25 Feb 2014 03:06:56 +0000 (22:06 -0500)]
qla4xxx: Do not wait for IO completion, after issuing stop_firmware

Problem:
iSCSI stop_firmware mailbox command is not completing outstanding IO.

Solution:
Do not wait for IO completion after issuing stop_firmware mailbox
command

Signed-off-by: Tej Parkash <tej.parkash@qlogic.com>
Signed-off-by: Vikas Chaudhary <vikas.chaudhary@qlogic.com>
Reviewed-by: Mike Christie <michaelc@cs.wisc.edu>
Signed-off-by: Christoph Hellwig <hch@lst.de>