summaryrefslogtreecommitdiffstats
path: root/drivers/scsi/pmcraid.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/scsi/pmcraid.c')
-rw-r--r--drivers/scsi/pmcraid.c24
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);