diff options
author | James Smart <james.smart@emulex.com> | 2010-06-08 18:31:21 -0400 |
---|---|---|
committer | James Bottomley <James.Bottomley@suse.de> | 2010-07-27 13:01:35 -0400 |
commit | 75baf69657ea2107f2c202cd29dada206ae4b7c4 (patch) | |
tree | 76f48393730c19e0a0286ceaa5132d8e500f127f /drivers/scsi/lpfc/lpfc_scsi.c | |
parent | c20c426732a5a5d21e99b36286f79c2024115341 (diff) |
[SCSI] lpfc 8.3.14: PCI fixes and enhancements
- Allow enabling MSI-X intterupts with fewer vectors than requested
by looking at the return value from pci_enable_msix.
- Implemented driver PCI AER error handling routines for supporting
AER error recovering on SLI4 devices.
- Remove redundant SLI_ACTIVE checks
Signed-off-by: Alex Iannicelli <alex.iannicelli@emulex.com>
Signed-off-by: James Smart <james.smart@emulex.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
Diffstat (limited to 'drivers/scsi/lpfc/lpfc_scsi.c')
-rw-r--r-- | drivers/scsi/lpfc/lpfc_scsi.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/drivers/scsi/lpfc/lpfc_scsi.c b/drivers/scsi/lpfc/lpfc_scsi.c index c6bdf63925d9..f68753ea941f 100644 --- a/drivers/scsi/lpfc/lpfc_scsi.c +++ b/drivers/scsi/lpfc/lpfc_scsi.c | |||
@@ -2295,15 +2295,21 @@ lpfc_scsi_cmd_iocb_cmpl(struct lpfc_hba *phba, struct lpfc_iocbq *pIocbIn, | |||
2295 | struct lpfc_vport *vport = pIocbIn->vport; | 2295 | struct lpfc_vport *vport = pIocbIn->vport; |
2296 | struct lpfc_rport_data *rdata = lpfc_cmd->rdata; | 2296 | struct lpfc_rport_data *rdata = lpfc_cmd->rdata; |
2297 | struct lpfc_nodelist *pnode = rdata->pnode; | 2297 | struct lpfc_nodelist *pnode = rdata->pnode; |
2298 | struct scsi_cmnd *cmd = lpfc_cmd->pCmd; | 2298 | struct scsi_cmnd *cmd; |
2299 | int result; | 2299 | int result; |
2300 | struct scsi_device *tmp_sdev; | 2300 | struct scsi_device *tmp_sdev; |
2301 | int depth; | 2301 | int depth; |
2302 | unsigned long flags; | 2302 | unsigned long flags; |
2303 | struct lpfc_fast_path_event *fast_path_evt; | 2303 | struct lpfc_fast_path_event *fast_path_evt; |
2304 | struct Scsi_Host *shost = cmd->device->host; | 2304 | struct Scsi_Host *shost; |
2305 | uint32_t queue_depth, scsi_id; | 2305 | uint32_t queue_depth, scsi_id; |
2306 | 2306 | ||
2307 | /* Sanity check on return of outstanding command */ | ||
2308 | if (!(lpfc_cmd->pCmd)) | ||
2309 | return; | ||
2310 | cmd = lpfc_cmd->pCmd; | ||
2311 | shost = cmd->device->host; | ||
2312 | |||
2307 | lpfc_cmd->result = pIocbOut->iocb.un.ulpWord[4]; | 2313 | lpfc_cmd->result = pIocbOut->iocb.un.ulpWord[4]; |
2308 | lpfc_cmd->status = pIocbOut->iocb.ulpStatus; | 2314 | lpfc_cmd->status = pIocbOut->iocb.ulpStatus; |
2309 | /* pick up SLI4 exhange busy status from HBA */ | 2315 | /* pick up SLI4 exhange busy status from HBA */ |