aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2014-03-15[SCSI] hpsa: improve error messages for driver initiated commandsStephen M. Cameron1-27/+44
On encountering unexpected error conditions from driver initiated commands, print something useful like CDB and sense data rather than something useless like the kernel virtual address of the command buffer. Signed-off-by: Stephen M. Cameron <[email protected]> Signed-off-by: James Bottomley <[email protected]>
2014-03-15[SCSI] hpsa: only do device rescan for certain eventsStephen M. Cameron2-1/+17
Do no rescan on every events -- way too many rescans are triggered if we don't filter the events. Limit rescans to be triggered by the following set of events: * controller state change * enclosure hot plug * physical drive state change * logical drive state change * redundant controller state change * accelerated io enabled/disabled * accelerated io configuration change Signed-off-by: Stephen M. Cameron <[email protected]> Signed-off-by: James Bottomley <[email protected]>
2014-03-15[SCSI] hpsa: when switching out of accel mode await only accel command ↵Stephen M. Cameron1-6/+16
completions Don't wait for *all* commands to complete, only for accelerated mode commands. Signed-off-by: Stephen M. Cameron <[email protected]> Signed-off-by: James Bottomley <[email protected]>
2014-03-15[SCSI] hpsa: add controller base data-at-rest encryption compatibility ioaccel2Scott Teel2-14/+184
Add controller-based data-at-rest encryption compatibility to ioaccel2 path (HP SSD Smart Path). Encryption feature requires driver to supply additional fields for encryption enable, tweak index, and data encryption key index in the ioaccel2 request structure. Encryption enable flag and data encryption key index come from raid_map data structure from raid offload command. During ioaccel2 submission, check device structure's raid map to see if encryption is enabled for the device. If so, call new function below. Add function set_encrypt_ioaccel2 to set encryption flag, data encryption key index, and calculate tweak value from request's logical block address. Signed-off-by: Scott Teel <[email protected]> Signed-off-by: Stephen M. Cameron <[email protected]> Signed-off-by: James Bottomley <[email protected]>
2014-03-15[SCSI] hpsa: update source file copyrightsScott Teel3-3/+3
Signed-off-by: Scott Teel <[email protected]> Signed-off-by: Stephen M. Cameron <[email protected]> Signed-off-by: James Bottomley <[email protected]>
2014-03-15[SCSI] hpsa: retry certain ioaccel error cases on the RAID pathScott Teel1-6/+39
Change the handling of HP SSD Smart Path errors with status: 0x02 CHECK CONDITION 0x08 BUSY 0x18 RESERVATION CONFLICT 0x40 TASK ABORTED So that they get retried on the RAID Path. Signed-off-by: Scott Teel <[email protected]> Signed-off-by: Stephen M. Cameron <[email protected]> Signed-off-by: James Bottomley <[email protected]>
2014-03-15[SCSI] hpsa: do not inquire for unsupported ioaccel status vpd pageStephen M. Cameron2-0/+47
Signed-off-by: Stephen M. Cameron <[email protected]> Signed-off-by: James Bottomley <[email protected]>
2014-03-15[SCSI] hpsa: allow VPD page zero to be queriedStephen M. Cameron1-8/+9
Code was confused and assumed that page zero was not VPD page and all non-zero pages were VPD pages. Signed-off-by: Stephen M. Cameron <[email protected]> Signed-off-by: James Bottomley <[email protected]>
2014-03-15[SCSI] hpsa: rescan devices on ioaccel2 errorScott Teel2-2/+11
Allow driver to schedule a rescan whenever a request fails on the ioaccel2 path. This eliminates the possibility of driver getting stuck in non-ioaccel mode. IOaccel mode (HP SSD Smart Path) is disabled by driver upon error detection. Driver relied on idea that request would be retried through normal path, and a subsequent error would occur on that path, and be processed by controller firmware. As part of that process, controller disables ioaccel mode and later reinstates it, signalling driver to change modes. In some error cases, the error will not duplicate on the standard path, so the driver could get stuck in non-ioaccel mode. To avoid that, we allow driver to request a rescan during the next run of the rescan thread. Signed-off-by: Scott Teel <[email protected]> Signed-off-by: Stephen M. Cameron <[email protected]> Signed-off-by: James Bottomley <[email protected]>
2014-03-15[SCSI] hpsa: allow user to disable accelerated i/o pathScott Teel3-1/+61
Allow SSD Smart Path for a controller to be disabled by the user, regardless of settings in controller firmware or array configuration. To disable: echo 0 > /sys/class/scsi_host/host<id>/acciopath_status To re-enable: echo 1 > /sys/class/scsi_host/host<id>/acciopath_status To check state: cat /sys/class/scsi_host/host<id>/acciopath_status Signed-off-by: Scott Teel <[email protected]> Signed-off-by: Stephen M. Cameron <[email protected]> Signed-off-by: James Bottomley <[email protected]>
2014-03-15[SCSI] hpsa: complete the ioaccel raidmap codeScott Teel1-6/+168
Load balance across members of a N-way mirror set, and handle the meta-RAID levels: R10, R50, R60. Signed-off-by: Scott Teel <[email protected]> Signed-off-by: Stephen M. Cameron <[email protected]> Signed-off-by: James Bottomley <[email protected]>
2014-03-15[SCSI] hpsa: make device update copy the raid map alsoStephen M. Cameron1-0/+3
Otherwise we could wind up using incorrect raid map data, and then very bad things would likely happen. Signed-off-by: Stephen M. Cameron <[email protected]> Signed-off-by: James Bottomley <[email protected]>
2014-03-15[SCSI] hpsa: add task management for ioaccel mode 2Scott Teel2-6/+167
Underlying firmware cannot handle task abort on accelerated path (SSD Smart Path). Change abort requests for accelerated path commands to physical target reset. Send reset request on normal IO path. Signed-off-by: Scott Teel <[email protected]> Signed-off-by: Mike Miller <[email protected]> Signed-off-by: Stephen M. Cameron <[email protected]> Signed-off-by: James Bottomley <[email protected]>
2014-03-15[SCSI] hpsa: teach hpsa_device_reset to do either target or lun resetScott Teel1-4/+6
Signed-off-by: Scott Teel <[email protected]> Signed-off-by: Stephen M. Cameron <[email protected]> Signed-off-by: James Bottomley <[email protected]>
2014-03-15[SCSI] hpsa: get ioaccel mode 2 i/o workingScott Teel3-19/+327
Signed-off-by: Scott Teel <[email protected]> Signed-off-by: Joe Handzik <[email protected]> Signed-off-by: Mike Miller <[email protected]> Signed-off-by: Stephen M. Cameron <[email protected]> Signed-off-by: James Bottomley <[email protected]>
2014-03-15[SCSI] hpsa: initialize controller to perform io accelerator mode 2Stephen M. Cameron3-36/+78
Signed-off-by: Stephen M. Cameron <[email protected]> Signed-off-by: Scott Teel <[email protected]> Signed-off-by: James Bottomley <[email protected]>
2014-03-15[SCSI] hpsa: get physical device handles for io accel mode 2 as well as mode 1Mike MIller1-1/+2
Signed-off-by: Mike MIller <[email protected]> Signed-off-by: Stephen M. Cameron <[email protected]> Signed-off-by: James Bottomley <[email protected]>
2014-03-15[SCSI] hpsa: do ioaccel mode 2 resource allocationsStephen M. Cameron2-0/+53
Signed-off-by: Mike Miller <[email protected]> Signed-off-by: Stephen M. Cameron <[email protected]> Signed-off-by: James Bottomley <[email protected]>
2014-03-15[SCSI] hpsa: Acknowledge controller events in ioaccell mode 2 as well as mode 1Stephen M. Cameron2-1/+3
Signed-off-by: Stephen M. Cameron <[email protected]> Signed-off-by: James Bottomley <[email protected]>
2014-03-15[SCSI] hpsa: add ioaccel mode 2 structure definitionsMike Miller3-0/+129
Signed-off-by: Mike Miller <[email protected]> Signed-off-by: Stephen M. Cameron <[email protected]> Signed-off-by: James Bottomley <[email protected]>
2014-03-15[SCSI] hpsa: complain if physical or logical aborts are not supportedScott Teel1-0/+4
Signed-off-by: Scott Teel <[email protected]> Signed-off-by: Stephen M. Cameron <[email protected]> Signed-off-by: James Bottomley <[email protected]>
2014-03-15[SCSI] hpsa: add hp_ssd_smart_path_enabled sysfs attributeScott Teel1-0/+25
Signed-off-by: Scott Teel <[email protected]> Signed-off-by: Stephen M. Cameron <[email protected]> Signed-off-by: James Bottomley <[email protected]>
2014-03-15[SCSI] hpsa: do not rescan controllers known to be locked upStephen M. Cameron1-0/+30
* Do not check event bits on locked up controllers to see if they need to be rescanned. * Do not initiate any device rescans on controllers which are known to be locked up. Signed-off-by: Stephen M. Cameron <[email protected]> Signed-off-by: James Bottomley <[email protected]>
2014-03-15[SCSI] hpsa: poll controller to detect device change eventStephen M. Cameron3-0/+112
For shared SAS configurations, hosts need to poll Smart Arrays periodically in order to be able to detect configuration changes such as logical drives being added or removed from remote hosts. A register on the controller indicates when such events have occurred, and the driver polls the register via a workqueue and kicks off a rescan of devices if such an event is detected. Additionally, changes to logical drive raid offload eligibility are autodetected in this way. Signed-off-by: Stephen M. Cameron <[email protected]> Signed-off-by: Scott Teel <[email protected]> Signed-off-by: James Bottomley <[email protected]>
2014-03-15[SCSI] hpsa: update raid offload status on device rescanStephen M. Cameron1-0/+9
When rescanning for logical drives, store information about whather raid offload is enabled for each logical drive, and update the driver's internal record of this. Signed-off-by: Stephen M. Cameron <[email protected]> Signed-off-by: James Bottomley <[email protected]>
2014-03-15[SCSI] hpsa: add ioaccell mode 1 RAID offload support.Stephen M. Cameron3-49/+607
This enables sending i/o's destined for RAID logical drives which can be serviced by a single physical disk down a different, faster i/o path directly to physical drives for certain logical volumes on SSDs bypassing the Smart Array RAID stack for a performance improvement. Signed-off-by: Matt Gates <[email protected]> Signed-off-by: Stephen M. Cameron <[email protected]> Signed-off-by: Scott Teel <[email protected]> Signed-off-by: Mike Miller <[email protected]> Signed-off-by: Don Brace <[email protected]> Signed-off-by: Joe Handzik <[email protected]> Signed-off-by: James Bottomley <[email protected]>
2014-03-15[SCSI] hpsa: fix task management for mode-1 ioaccell pathScott Teel1-6/+21
For "mode 1" io accelerated commands, the command tag is in a different location than for commands that go down the normal RAID path, so the abort handler needs to take this into account. Signed-off-by: Scott Teel <[email protected]> Signed-off-by: Mike Miller <[email protected]> Signed-off-by: Stephen M. Cameron <[email protected]> Signed-off-by: James Bottomley <[email protected]>
2014-03-15[SCSI] hpsa: only allow REQ_TYPE_FS to use fast pathStephen M. Cameron1-1/+2
When commands sent down the "fast path" fail, they must be re-tried down the normal RAID path. We do this by kicking i/o's back to the scsi mid layer with a DID_SOFT_ERROR status, which causes them to be retried. This won't work for SG_IO's and other non REQ_TYPE_FS i/o's which could get kicked all the way back to the application, which may have no idea that the command needs resubmitting and likely no way to resubmit it in such a way the that driver can recognize it as a resubmit and send it down the normal RAID path. So we just always send non REQ_TYPE_FS i/o's down the normal RAID path, never down the "fast path". Signed-off-by: Stephen M. Cameron <[email protected]> Signed-off-by: James Bottomley <[email protected]>
2014-03-15[SCSI] hpsa: add support for 'fastpath' i/oMatt Gates3-19/+388
For certain i/o's to certain devices (unmasked physical disks) we can bypass the RAID stack firmware and do the i/o to the device directly and it will be faster. Signed-off-by: Matt Gates <[email protected]> Signed-off-by: Stephen M. Cameron <[email protected]> Signed-off-by: James Bottomley <[email protected]>
2014-03-15[SCSI] hpsa: mark last scatter gather element as the lastMatt Gates2-4/+5
This is normally optional, but for SSD Smart Path support (in subsequent patches) it is required. Signed-off-by: Matt Gates <[email protected]> Signed-off-by: Stephen M. Cameron <[email protected]> Signed-off-by: James Bottomley <[email protected]>
2014-03-15[SCSI] hpsa: use extended report luns command for HP SSD SmartPathMatt Gates2-5/+9
There is an extended report luns command which contains additional information about physical devices. In particular we need to get the physical device handle so we can use an alternate i/o path for fast physical devices like SSDs so we can speed up certain i/o's by bypassing the RAID stack code in the controller firmware. Signed-off-by: Matt Gates <[email protected]> Signed-off-by: Stephen M. Cameron <[email protected]> Signed-off-by: James Bottomley <[email protected]>
2014-03-15[SCSI] pm80xx: Spinlock fixSuresh Thiagarajan3-142/+38
spin_lock_irqsave for the HBA lock is called in one function where flag is local to that function. Another function is called from the first function where lock has to be released using spin_unlock_irqrestore for calling task_done of libsas. In the second function also flag is declared and used. For calling task_done there is no need to enable the irq. So instead of using spin_lock_irqsave and spin_unlock_irqrestore, spin_lock and spin_unlock is used now. This also avoids passing the flags across all the functions where HBA lock is being used. Also removed redundant code. Reported-by: Jason Seba <[email protected]> Signed-off-by: Oleg Nesterov <[email protected]> Signed-off-by: Suresh Thiagarajan <[email protected]> Signed-off-by: Viswas G <[email protected]> Acked-by: Jack Wang <[email protected]> Signed-off-by: James Bottomley <[email protected]>
2014-03-15[SCSI] hpsa: fixup MSI-X registrationHannes Reinecke1-14/+17
Commit 254f796b9f22b1944c64caabc356a56caaa2facd updated the driver to use 16 MSI-X vectors, despite the fact that older controllers would provide only 4. This was causing MSI-X registration to drop down to INTx mode. But as the controller support performant mode, the initialisation will become confused and cause the machine to stall during boot. This patch fixes up the MSI-X registration to re-issue the pci_enable_msix() call with the correct number of MSI-X vectors. With that the hpsa driver continues to works on older controllers like the P200. Signed-off-by: Hannes Reinecke <[email protected]> Acked-by: Stephen M. Cameron <[email protected]> Signed-off-by: James Bottomley <[email protected]>
2014-03-15[SCSI] aacraid: kdump fixMahesh Rajashekhara2-4/+5
This patch fixes kernel panic issue while booting into the kdump kernel. We have triggered crash and kdump vmcore was successful. No issues seen while booting into the OS. Signed-off-by: Mahesh Rajashekhara <[email protected]> Reviewed-by: Tomas Henzl <[email protected]> Signed-off-by: James Bottomley <[email protected]>
2014-03-15[SCSI] megaraid: missing bounds check in mimd_to_kioc()Dan Carpenter1-0/+2
pthru32->dataxferlen comes from the user so we need to check that it's not too large so we don't overflow the buffer. Reported-by: Nico Golde <[email protected]> Reported-by: Fabian Yamaguchi <[email protected]> Signed-off-by: Dan Carpenter <[email protected]> Acked-by: Sumit Saxena <[email protected]> Signed-off-by: James Bottomley <[email protected]>
2014-03-15[SCSI] iscsi: fix wrong order of opcode and itt in iscsi_handle_reject promptVaughan Cao1-4/+4
This patch makes reject messages show right value for opcode and itt, which is converse previously. Signed-off-by: Vaughan Cao <[email protected]> Acked-by: Mike Christie <[email protected]> Signed-off-by: James Bottomley <[email protected]>
2014-03-15[SCSI] bfa: Fix smatch warningsVijaya Mohan Guvva1-4/+5
Fixed following smatch warnings in bfa. drivers/scsi/bfa/bfa_ioc.c:3882 bfa_sfp_show_comp() error: memcpy() 'des' too small (64 vs 248) drivers/scsi/bfa/bfa_ioc.c:6859 bfa_flash_status_read() warn: unsigned 'status' is never less than zero. drivers/scsi/bfa/bfa_ioc.c:6881 bfa_flash_status_read() warn: unsigned 'status' is never less than zero. drivers/scsi/bfa/bfa_ioc.c:6917 bfa_flash_read_start() warn: unsigned 'status' is never less than zero. drivers/scsi/bfa/bfa_ioc.c:7043 bfa_flash_raw_read() warn: unsigned 'status' is never less than zero. Signed-off-by: Vijaya Mohan Guvva <[email protected]> Signed-off-by: James Bottomley <[email protected]>
2014-03-15[SCSI] bfa: fix missing unlock on error in bfad_iocmd_cfg_trunk()Wei Yongjun1-1/+3
Add the missing unlock before return from function bfad_iocmd_cfg_trunk() in the error handling case. Signed-off-by: Wei Yongjun <[email protected]> Acked-by: Vijaya Mohan Guvva <[email protected]> Signed-off-by: James Bottomley <[email protected]>
2014-03-15[SCSI] scsi_error: disable eh_deadline if no host_reset_handler is setHannes Reinecke2-2/+4
When the host template doesn't declare an eh_host_reset_handler the eh_deadline mechanism is pointless and will set the device to offline. So disable eh_deadline if no eh_host_reset_handler is present. Signed-off-by: Hannes Reinecke <[email protected]> Signed-off-by: James Bottomley <[email protected]>
2014-03-15[SCSI] dual scan thread bug fixJames Bottomley1-7/+16
In the highly unusual case where two threads are running concurrently through the scanning code scanning the same target, we run into the situation where one may allocate the target while the other is still using it. In this case, because the reap checks for STARGET_CREATED and kills the target without reference counting, the second thread will do the wrong thing on reap. Fix this by reference counting even creates and doing the STARGET_CREATED check in the final put. Tested-by: Sarah Sharp <[email protected]> Cc: [email protected] # delay backport for 2 months for field testing Signed-off-by: James Bottomley <[email protected]>
2014-03-15[SCSI] fix our current target reap infrastructureJames Bottomley3-47/+75
This patch eliminates the reap_ref and replaces it with a proper kref. On last put of this kref, the target is removed from visibility in sysfs. The final call to scsi_target_reap() for the device is done from __scsi_remove_device() and only if the device was made visible. This ensures that the target disappears as soon as the last device is gone rather than waiting until final release of the device (which is often too long). Reviewed-by: Alan Stern <[email protected]> Tested-by: Sarah Sharp <[email protected]> Cc: [email protected] # delay backport by 2 months for field testing Signed-off-by: James Bottomley <[email protected]>
2014-03-15[SCSI] pm80xx: Enable BAR shift to avoid BIOS conflict with MPI space for ↵Bradley Grove1-3/+3
ATTO pm8001 based HBAs. Signed-off-by: Bradley Grove <[email protected]> Signed-off-by: James Bottomley <[email protected]>
2014-03-15[SCSI] pm80xx: Read saved WWN from NVMD for ATTO pm8001 based HBAs.Bradley Grove1-5/+5
Signed-off-by: Bradley Grove <[email protected]> Signed-off-by: James Bottomley <[email protected]>
2014-03-15[SCSI] esas2r: fix potential format string flawKees Cook1-6/+2
This makes sure format strings cannot leak into the printk call via the constructed buffer. Signed-off-by: Kees Cook <[email protected]> Acked-by: Bradley Grove <[email protected]> Signed-off-by: James Bottomley <[email protected]>
2014-03-15[SCSI] lpfc: use NULL instead of 0 for pointerDaeseok Youn1-1/+1
sparse says: drivers/scsi/lpfc/lpfc_sli.c:16547:37: warning: Using plain integer as NULL pointer Signed-off-by: Daeseok Youn <[email protected]> Acked-by: James Smart <[email protected]> Signed-off-by: James Bottomley <[email protected]>
2014-03-15[SCSI] lpfc: remove self-assignmentsJames Smart1-4/+0
Report from coverity Reported-by: Dave Jones <[email protected]> Signed-off-by: James Smart <[email protected]> Signed-off-by: James Bottomley <[email protected]>
2014-03-15[SCSI] lpfc 8.3.45: Update lpfc version to driver version 8.3.45James Smart1-1/+1
Signed-off-by: James Smart <[email protected]> Signed-off-by: James Bottomley <[email protected]>
2014-03-15[SCSI] lpfc 8.3.45: Fixed crash during driver unload.James Smart3-9/+28
Signed-off-by: James Smart <[email protected]> Signed-off-by: James Bottomley <[email protected]>
2014-03-15[SCSI] lpfc 8.3.45: Fixed driver error messages after firmware downloadJames Smart1-8/+14
Signed-off-by: James Smart <[email protected]> Signed-off-by: James Bottomley <[email protected]>
2014-03-15[SCSI] lpfc 8.3.45: Fixed missing initialization for task management IOCBsJames Smart1-0/+2
Signed-off-by: James Smart <[email protected]> Signed-off-by: James Bottomley <[email protected]>