15 Dec, 2011
2 commits
-
The '5i' controller freezes when a kdump is attemted.
This patch admits it and adds the controller
to the unresetable list.Signed-off-by: Tomas Henzl
Signed-off-by: James Bottomley -
IRQF_SHARED is required for older controllers that don't support MSI(X)
and which may end up sharing an interrupt. All the controllers hpsa
normally supports have MSI(X) capability, but older controllers may be
encountered via the hpsa_allow_any=1 module parameter.Also remove deprecated IRQF_DISABLED.
Signed-off-by: Stephen M. Cameron
Signed-off-by: James Bottomley
15 Nov, 2011
1 commit
-
The Windows driver .inf disables ASPM on hpsa devices. Do the same because the
selection of a non default ASPM policy can cause the device to hang.Signed-off-by: Matthew Garrett
Cc: stable@kernel.org
Acked-by: Mike Miller
Signed-off-by: James Bottomley
06 Nov, 2011
1 commit
-
* git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6: (45 commits)
[SCSI] Fix block queue and elevator memory leak in scsi_alloc_sdev
[SCSI] scsi_dh_alua: Fix the time inteval for alua rtpg commands
[SCSI] scsi_transport_iscsi: Fix documentation os parameter
[SCSI] mv_sas: OCZ RevoDrive3 & zDrive R4 support
[SCSI] libfc: improve flogi retries to avoid lport stuck
[SCSI] libfc: avoid exchanges collision during lport reset
[SCSI] libfc: fix checking FC_TYPE_BLS
[SCSI] edd: Treat "XPRS" host bus type the same as "PCI"
[SCSI] isci: overriding max_concurr_spinup oem parameter by max(oem, user)
[SCSI] isci: revert bcn filtering
[SCSI] isci: Fix hard reset timeout conditions.
[SCSI] isci: No need to manage the pending reset bit on pending requests.
[SCSI] isci: Remove redundant isci_request.ttype field.
[SCSI] isci: Fix task management for SMP, SATA and on dev remove.
[SCSI] isci: No task_done callbacks in error handler paths.
[SCSI] isci: Handle task request timeouts correctly.
[SCSI] isci: Fix tag leak in tasks and terminated requests.
[SCSI] isci: Immediately fail I/O to removed devices.
[SCSI] isci: Lookup device references through requests in completions.
[SCSI] ipr: add definitions for additional adapter
...
05 Nov, 2011
1 commit
-
* 'for-3.2/drivers' of git://git.kernel.dk/linux-block: (30 commits)
virtio-blk: use ida to allocate disk index
hpsa: add small delay when using PCI Power Management to reset for kump
cciss: add small delay when using PCI Power Management to reset for kump
xen/blkback: Fix two races in the handling of barrier requests.
xen/blkback: Check for proper operation.
xen/blkback: Fix the inhibition to map pages when discarding sector ranges.
xen/blkback: Report VBD_WSECT (wr_sect) properly.
xen/blkback: Support 'feature-barrier' aka old-style BARRIER requests.
xen-blkfront: plug device number leak in xlblk_init() error path
xen-blkfront: If no barrier or flush is supported, use invalid operation.
xen-blkback: use kzalloc() in favor of kmalloc()+memset()
xen-blkback: fixed indentation and comments
xen-blkfront: fix a deadlock while handling discard response
xen-blkfront: Handle discard requests.
xen-blkback: Implement discard requests ('feature-discard')
xen-blkfront: add BLKIF_OP_DISCARD and discard request struct
drivers/block/loop.c: remove unnecessary bdev argument from loop_clr_fd()
drivers/block/loop.c: emit uevent on auto release
drivers/block/cpqarray.c: use pci_dev->revision
loop: always allow userspace partitions and optionally support automatic scanning
...Fic up trivial header file includsion conflict in drivers/block/loop.c
30 Oct, 2011
6 commits
-
When controller lockup condition is detected,
we should fail all outstanding commands and disable
the controller. This will enable multipath solutions
to recover gracefully.Signed-off-by: Stephen M. Cameron
Signed-off-by: James Bottomley -
We weren't filling in the transfer length of the
flush cache command (it transfers 4 bytes of zeroes).
Firmware didn't seem to be bothered by this, but it
should be fixed.Signed-off-by: Stephen M. Cameron
Signed-off-by: James Bottomley -
The currentsd[] array in hpsa_update_scsi_devices had room for
256 devices. The code was iterating over however many physical
and logical devices plus an additional number of possible external
MSA2XXX controllers, which together could potentially exceed 256.We increased the size of the currentsd array to 1024 + 1024 + 32 + 1
elements to reflect a reasonable maximum possible number of devices
which might be encountered. We also don't just walk off the end
of the array if the array controller reports more devices than we
are prepared to handle, we just ignore the excessive devices.Signed-off-by: Scott Teel
Signed-off-by: Stephen M. Cameron
Signed-off-by: James Bottomley -
Rename HPSA_MAX_SCSI_DEVS_PER_HBA to HPSA_MAX_DEVICES
Signed-off-by: Scott Teel
Signed-off-by: Stephen M. Cameron
Signed-off-by: James Bottomley -
Signed-off-by: Stephen M. Cameron
Signed-off-by: James Bottomley -
Set the max hardware sectors in the SCSI host template to 8192
to allow for larger i/o's (8192 is the same limit the cciss
driver currently has.)Signed-off-by: Stephen M. Cameron
Signed-off-by: James Bottomley
21 Oct, 2011
1 commit
-
The P600 requires a small delay when changing states. Otherwise we may think
the board did not reset and we bail. This for kdump only and is particular
to the P600.Signed-off-by: Mike Miller
Cc: stable@kernel.org
Signed-off-by: Jens Axboe
20 Oct, 2011
1 commit
-
The following warning message may be confusing to some users:
dev_warn(&pdev->dev, "Controller claims that "
"'Bit 2 doorbell reset' is "
"supported, but not 'bit 5 doorbell reset'. "
"Firmware update is recommended.\n");Most users don't know or care what bit we may be hitting. Also change
"recommended" to "required."Signed-off-by: Mike Miller
Signed-off-by: James Bottomley
27 Aug, 2011
2 commits
-
If a physical device exposed to the OS by hpsa
is replaced (e.g. one hot plug tape drive is replaced
by another, or a tape drive is placed into "OBDR" mode
in which it acts like a CD-ROM device) and a rescan is
initiated, the replaced device will be added to the
SCSI midlayer with target and lun numbers set to -1.
After that, a panic is likely to ensue. When a physical
device is replaced, the lun and target number should be
preserved.Signed-off-by: Stephen M. Cameron
Cc: stable@kernel.org
Signed-off-by: James Bottomley -
The test to detect OBDR ("One Button Disaster Recovery")
cd-rom devices was comparing against uninitialized data.Fixed by moving the test for the device to where the
inquiry data is collected, and uninitialized variable
altogether as it wasn't really being used.Signed-off-by: Stephen M. Cameron
Cc: stable@kernel.org
Signed-off-by: James Bottomley
31 Jul, 2011
1 commit
-
* git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6: (71 commits)
[SCSI] fcoe: cleanup cpu selection for incoming requests
[SCSI] fcoe: add fip retry to avoid missing critical keep alive
[SCSI] libfc: fix warn on in lport retry
[SCSI] libfc: Remove the reference to FCP packet from scsi_cmnd in case of error
[SCSI] libfc: cleanup sending SRR request
[SCSI] libfc: two minor changes in comments
[SCSI] libfc, fcoe: ignore rx frame with wrong xid info
[SCSI] libfc: release exchg cache
[SCSI] libfc: use FC_MAX_ERROR_CNT
[SCSI] fcoe: remove unused ptype field in fcoe_rcv_info
[SCSI] bnx2fc: Update copyright and bump version to 1.0.4
[SCSI] bnx2fc: Tx BDs cache in write tasks
[SCSI] bnx2fc: Do not arm CQ when there are no CQEs
[SCSI] bnx2fc: hold tgt lock when calling cmd_release
[SCSI] bnx2fc: Enable support for sequence level error recovery
[SCSI] bnx2fc: HSI changes for tape
[SCSI] bnx2fc: Handle REC_TOV error code from firmware
[SCSI] bnx2fc: REC/SRR link service request and response handling
[SCSI] bnx2fc: Support 'sequence cleanup' task
[SCSI] dh_rdac: Associate HBA and storage in rdac_controller to support partitions in storage
...
27 Jul, 2011
2 commits
-
In a shared SAS setup, target devices may be reset by one of
several hosts, and outstanding commands on that device will be
completed to corresponding hosts with status of UNSOLICITED_ABORT.
Such commands should be retried instead of being treated as i/o
errors. Also fixed a nearby spelling error.Signed-off-by: Stephen M. Cameron
Signed-off-by: James Bottomley -
This allows us to move duplicated code in
(atomic_inc_not_zero() for now) toSigned-off-by: Arun Sharma
Reviewed-by: Eric Dumazet
Cc: Ingo Molnar
Cc: David Miller
Cc: Eric Dumazet
Acked-by: Mike Frysinger
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds
30 Jun, 2011
2 commits
-
This memcpy:
memcpy(cmd->sense_buffer, ei->SenseInfo,
ei->SenseLen > SCSI_SENSE_BUFFERSIZE ?
SCSI_SENSE_BUFFERSIZE :
ei->SenseLen);The ei->SenseLen field is filled in by the Smart Array. For requests to
logical drives, it will not exceed 32 bytes, so should be ok, but for physical
requests it depends on the target device, not the Smart Array. It's conceivable
that this could exceed the 32 byte size of ei->SenseInfo. In that case, the memcpy
would read past the end of ei->SenseInfo, copying data from the next command,
as if it were sense data, or, if it happened to be the very last command in the
block of allocated commands, could fall off the end of the allocated area and
crash. I'm not aware of anyone ever encountering this behavior, but it could
conceivably happen. This bug was found by Coverity.Signed-off-by: Stephen M. Cameron
Signed-off-by: James Bottomley -
Signed-off-by: Stephen M. Cameron
Signed-off-by: James Bottomley
17 May, 2011
12 commits
-
Not at all sure this is correct or appropriate to change,
but this seems odd.Found via coccinelle script
@@
type T;
T* ptr;
expression E1;
@@* memset(E1, 0, sizeof(ptr));
Signed-off-by: Joe Perches
Acked-by: Stephen M. Cameron
Signed-off-by: James Bottomley
Signed-off-by: James Bottomley -
Signed-off-by: Scott Teel
Signed-off-by: James Bottomley
Signed-off-by: James Bottomley -
Just go straight to the soft-reset method instead.
Signed-off-by: Stephen M. Cameron
Signed-off-by: James Bottomley
Signed-off-by: James Bottomley -
Signed-off-by: Stephen M. Cameron
Signed-off-by: James Bottomley
Signed-off-by: James Bottomley -
on driver load, if reset_devices is set, and the hard reset
attempts fail, try to bring up the controller to the point that
a command can be sent, and send it a soft reset command, then
after the reset undo whatever driver initialization was done to get
it to the point to take a command, and re-do it after the reset.This is to get kdump to work on all the "non-resettable" controllers
(except 64xx controllers which can't be reset due to the potentially
shared cache module.)Signed-off-by: Stephen M. Cameron
Signed-off-by: James Bottomley
Signed-off-by: James Bottomley -
The bit-2-doorbell reset method seemed to cause (survivable) NMIs
on some systems and (unsurvivable) IOCK NMIs on some G7 servers.
Firmware guys implemented a new doorbell method to alleviate these
problems triggered by bit 5 of the doorbell register. We want to
use it if it's available.Signed-off-by: Stephen M. Cameron
Signed-off-by: James Bottomley
Signed-off-by: James Bottomley -
hpsa_scsi_setup at one time contained enough code to justify
its existence, but that time has passed.Signed-off-by: Stephen M. Cameron
Signed-off-by: James Bottomley
Signed-off-by: James Bottomley -
When waiting for the board to become "not ready"
don't print a message saying "waiting for board to
become ready" (possibly followed by a message saying
"failed waiting for board to become not ready". Instead,
it should be "waiting for board to reset" and "failed
waiting for board to reset."Signed-off-by: Stephen M. Cameron
Signed-off-by: James Bottomley
Signed-off-by: James Bottomley -
Signed-off-by: Stephen M. Cameron
Signed-off-by: James Bottomley
Signed-off-by: James Bottomley -
Signed-off-by: Stephen M. Cameron
Signed-off-by: James Bottomley
Signed-off-by: James Bottomley -
Detect failure of controller reset by noticing if the 32 bytes of
"driver version" we store on the hardware in the config table
fail to get zeroed out. Previously we noticed if the controller
did not transition to "simple mode", but this did not detect reset
failure if the controller was already in simple mode prior to
the reset attempt (e.g. due to module parameter hpsa_simple_mode=1).Signed-off-by: Stephen M. Cameron
Signed-off-by: James Bottomley
Signed-off-by: James Bottomley -
Signed-off-by: Stephen M. Cameron
Signed-off-by: James Bottomley
Signed-off-by: James Bottomley
15 Mar, 2011
3 commits
-
This attribute, requested by Redhat, allows kexec-tools to know
whether the controller can honor the reset_devices kernel parameter
and actually reset the controller. For kdump to work properly it
is necessary that the reset_devices parameter be honored. This
attribute enables kexec-tools to warn the user if they attempt to
designate a non-resettable controller as the dump device.Signed-off-by: Stephen M. Cameron
Signed-off-by: James Bottomley -
Signed-off-by: Stephen M. Cameron
Signed-off-by: James Bottomley -
My first attempt was botched, got the wrong PCI Device ID
(used PCI_DEVICE_ID_HP_CISSE, should have been PCI_DEVICE_ID_HP_CISSF)Signed-off-by: Stephen M. Cameron
Signed-off-by: James Bottomley
19 Feb, 2011
5 commits
-
'!' has higher precedence than '&'. CFGTBL_ChangeReq is 0x1 so the
original code is equivelent to if (!doorbell_value) {...Signed-off-by: Dan Carpenter
Acked-by: Stephen M. Cameron
Signed-off-by: James Bottomley -
We can get completions left over from before the attempted reset which
will interfere with the kdump. Better to just not make the attempt in
that case.Signed-off-by: Stephen M. Cameron
Signed-off-by: James Bottomley -
Controller will transfer only 32-bits on completion if it
knows we are only using 32-bit tags. Also, some newer controllers
apparently (and erroneously) require that we only use 32-bit tags,
and that we inform the controller of this.Signed-off-by: Stephen M. Cameron
Signed-off-by: James Bottomley -
Signed-off-by: Stephen M. Cameron
Signed-off-by: James Bottomley -
It's not enough to simple avoid putting the board into performant
mode, as we have to set up the interrupts differently, etc. When
I originally tested this module parameter, I tested it incorrectly
without realizing it, and the driver was running in performant mode
the whole time unbeknownst to me.Signed-off-by: Stephen M. Cameron
Signed-off-by: James Bottomley