diff options
Diffstat (limited to 'drivers/scsi/pmcraid.c')
-rw-r--r-- | drivers/scsi/pmcraid.c | 24 |
1 files changed, 8 insertions, 16 deletions
diff --git a/drivers/scsi/pmcraid.c b/drivers/scsi/pmcraid.c index 3ba606420247..401e543f1723 100644 --- a/drivers/scsi/pmcraid.c +++ b/drivers/scsi/pmcraid.c | |||
@@ -846,16 +846,9 @@ static void pmcraid_erp_done(struct pmcraid_cmd *cmd) | |||
846 | cmd->ioa_cb->ioarcb.cdb[0], ioasc); | 846 | cmd->ioa_cb->ioarcb.cdb[0], ioasc); |
847 | } | 847 | } |
848 | 848 | ||
849 | /* if we had allocated sense buffers for request sense, copy the sense | 849 | if (cmd->sense_buffer) { |
850 | * release the buffers | 850 | dma_unmap_single(&pinstance->pdev->dev, cmd->sense_buffer_dma, |
851 | */ | 851 | SCSI_SENSE_BUFFERSIZE, DMA_FROM_DEVICE); |
852 | if (cmd->sense_buffer != NULL) { | ||
853 | memcpy(scsi_cmd->sense_buffer, | ||
854 | cmd->sense_buffer, | ||
855 | SCSI_SENSE_BUFFERSIZE); | ||
856 | pci_free_consistent(pinstance->pdev, | ||
857 | SCSI_SENSE_BUFFERSIZE, | ||
858 | cmd->sense_buffer, cmd->sense_buffer_dma); | ||
859 | cmd->sense_buffer = NULL; | 852 | cmd->sense_buffer = NULL; |
860 | cmd->sense_buffer_dma = 0; | 853 | cmd->sense_buffer_dma = 0; |
861 | } | 854 | } |
@@ -2444,13 +2437,12 @@ static void pmcraid_request_sense(struct pmcraid_cmd *cmd) | |||
2444 | { | 2437 | { |
2445 | struct pmcraid_ioarcb *ioarcb = &cmd->ioa_cb->ioarcb; | 2438 | struct pmcraid_ioarcb *ioarcb = &cmd->ioa_cb->ioarcb; |
2446 | struct pmcraid_ioadl_desc *ioadl = ioarcb->add_data.u.ioadl; | 2439 | struct pmcraid_ioadl_desc *ioadl = ioarcb->add_data.u.ioadl; |
2440 | struct device *dev = &cmd->drv_inst->pdev->dev; | ||
2447 | 2441 | ||
2448 | /* allocate DMAable memory for sense buffers */ | 2442 | cmd->sense_buffer = cmd->scsi_cmd->sense_buffer; |
2449 | cmd->sense_buffer = pci_alloc_consistent(cmd->drv_inst->pdev, | 2443 | cmd->sense_buffer_dma = dma_map_single(dev, cmd->sense_buffer, |
2450 | SCSI_SENSE_BUFFERSIZE, | 2444 | SCSI_SENSE_BUFFERSIZE, DMA_FROM_DEVICE); |
2451 | &cmd->sense_buffer_dma); | 2445 | if (dma_mapping_error(dev, cmd->sense_buffer_dma)) { |
2452 | |||
2453 | if (cmd->sense_buffer == NULL) { | ||
2454 | pmcraid_err | 2446 | pmcraid_err |
2455 | ("couldn't allocate sense buffer for request sense\n"); | 2447 | ("couldn't allocate sense buffer for request sense\n"); |
2456 | pmcraid_erp_done(cmd); | 2448 | pmcraid_erp_done(cmd); |