Message ID | 20181011185003.16116-27-hch@lst.de (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | [01/28] aic94xx: fully convert to the generic DMA API | expand |
On 10/11/18 1:50 PM, Christoph Hellwig wrote: > The driver is currently using an odd mix of legacy PCI DMA API and > generic DMA API calls, switch it over to the generic API entirely. > > Signed-off-by: Christoph Hellwig <hch@lst.de> Tested-by: Don Brace <don.brace@microchip.com> Acked-by: Don Brace <don.brace@microchip.com> > --- > drivers/scsi/smartpqi/smartpqi_init.c | 100 +++++++++++--------------- > drivers/scsi/smartpqi/smartpqi_sis.c | 11 ++- > 2 files changed, 47 insertions(+), 64 deletions(-) > > diff --git a/drivers/scsi/smartpqi/smartpqi_init.c b/drivers/scsi/smartpqi/smartpqi_init.c > index 2112ea6723c6..a25a07a0b7f0 100644 > --- a/drivers/scsi/smartpqi/smartpqi_init.c > +++ b/drivers/scsi/smartpqi/smartpqi_init.c > @@ -349,16 +349,16 @@ static inline u32 pqi_read_heartbeat_counter(struct pqi_ctrl_info *ctrl_info) > > static int pqi_map_single(struct pci_dev *pci_dev, > struct pqi_sg_descriptor *sg_descriptor, void *buffer, > - size_t buffer_length, int data_direction) > + size_t buffer_length, enum dma_data_direction data_direction) > { > dma_addr_t bus_address; > > - if (!buffer || buffer_length == 0 || data_direction == PCI_DMA_NONE) > + if (!buffer || buffer_length == 0 || data_direction == DMA_NONE) > return 0; > > - bus_address = pci_map_single(pci_dev, buffer, buffer_length, > + bus_address = dma_map_single(&pci_dev->dev, buffer, buffer_length, > data_direction); > - if (pci_dma_mapping_error(pci_dev, bus_address)) > + if (dma_mapping_error(&pci_dev->dev, bus_address)) > return -ENOMEM; > > put_unaligned_le64((u64)bus_address, &sg_descriptor->address); > @@ -370,15 +370,15 @@ static int pqi_map_single(struct pci_dev *pci_dev, > > static void pqi_pci_unmap(struct pci_dev *pci_dev, > struct pqi_sg_descriptor *descriptors, int num_descriptors, > - int data_direction) > + enum dma_data_direction data_direction) > { > int i; > > - if (data_direction == PCI_DMA_NONE) > + if (data_direction == DMA_NONE) > return; > > for (i = 0; i < num_descriptors; i++) > - pci_unmap_single(pci_dev, > + dma_unmap_single(&pci_dev->dev, > (dma_addr_t)get_unaligned_le64(&descriptors[i].address), > get_unaligned_le32(&descriptors[i].length), > data_direction); > @@ -387,10 +387,9 @@ static void pqi_pci_unmap(struct pci_dev *pci_dev, > static int pqi_build_raid_path_request(struct pqi_ctrl_info *ctrl_info, > struct pqi_raid_path_request *request, u8 cmd, > u8 *scsi3addr, void *buffer, size_t buffer_length, > - u16 vpd_page, int *pci_direction) > + u16 vpd_page, enum dma_data_direction *dir) > { > u8 *cdb; > - int pci_dir; > > memset(request, 0, sizeof(*request)); > > @@ -458,23 +457,21 @@ static int pqi_build_raid_path_request(struct pqi_ctrl_info *ctrl_info, > > switch (request->data_direction) { > case SOP_READ_FLAG: > - pci_dir = PCI_DMA_FROMDEVICE; > + *dir = DMA_FROM_DEVICE; > break; > case SOP_WRITE_FLAG: > - pci_dir = PCI_DMA_TODEVICE; > + *dir = DMA_TO_DEVICE; > break; > case SOP_NO_DIRECTION_FLAG: > - pci_dir = PCI_DMA_NONE; > + *dir = DMA_NONE; > break; > default: > - pci_dir = PCI_DMA_BIDIRECTIONAL; > + *dir = DMA_BIDIRECTIONAL; > break; > } > > - *pci_direction = pci_dir; > - > return pqi_map_single(ctrl_info->pci_dev, &request->sg_descriptors[0], > - buffer, buffer_length, pci_dir); > + buffer, buffer_length, *dir); > } > > static inline void pqi_reinit_io_request(struct pqi_io_request *io_request) > @@ -516,21 +513,19 @@ static int pqi_identify_controller(struct pqi_ctrl_info *ctrl_info, > struct bmic_identify_controller *buffer) > { > int rc; > - int pci_direction; > + enum dma_data_direction dir; > struct pqi_raid_path_request request; > > rc = pqi_build_raid_path_request(ctrl_info, &request, > BMIC_IDENTIFY_CONTROLLER, RAID_CTLR_LUNID, buffer, > - sizeof(*buffer), 0, &pci_direction); > + sizeof(*buffer), 0, &dir); > if (rc) > return rc; > > rc = pqi_submit_raid_request_synchronous(ctrl_info, &request.header, 0, > NULL, NO_TIMEOUT); > > - pqi_pci_unmap(ctrl_info->pci_dev, request.sg_descriptors, 1, > - pci_direction); > - > + pqi_pci_unmap(ctrl_info->pci_dev, request.sg_descriptors, 1, dir); > return rc; > } > > @@ -538,21 +533,19 @@ static int pqi_scsi_inquiry(struct pqi_ctrl_info *ctrl_info, > u8 *scsi3addr, u16 vpd_page, void *buffer, size_t buffer_length) > { > int rc; > - int pci_direction; > + enum dma_data_direction dir; > struct pqi_raid_path_request request; > > rc = pqi_build_raid_path_request(ctrl_info, &request, > INQUIRY, scsi3addr, buffer, buffer_length, vpd_page, > - &pci_direction); > + &dir); > if (rc) > return rc; > > rc = pqi_submit_raid_request_synchronous(ctrl_info, &request.header, 0, > NULL, NO_TIMEOUT); > > - pqi_pci_unmap(ctrl_info->pci_dev, request.sg_descriptors, 1, > - pci_direction); > - > + pqi_pci_unmap(ctrl_info->pci_dev, request.sg_descriptors, 1, dir); > return rc; > } > > @@ -562,13 +555,13 @@ static int pqi_identify_physical_device(struct pqi_ctrl_info *ctrl_info, > size_t buffer_length) > { > int rc; > - int pci_direction; > + enum dma_data_direction dir; > u16 bmic_device_index; > struct pqi_raid_path_request request; > > rc = pqi_build_raid_path_request(ctrl_info, &request, > BMIC_IDENTIFY_PHYSICAL_DEVICE, RAID_CTLR_LUNID, buffer, > - buffer_length, 0, &pci_direction); > + buffer_length, 0, &dir); > if (rc) > return rc; > > @@ -579,9 +572,7 @@ static int pqi_identify_physical_device(struct pqi_ctrl_info *ctrl_info, > rc = pqi_submit_raid_request_synchronous(ctrl_info, &request.header, > 0, NULL, NO_TIMEOUT); > > - pqi_pci_unmap(ctrl_info->pci_dev, request.sg_descriptors, 1, > - pci_direction); > - > + pqi_pci_unmap(ctrl_info->pci_dev, request.sg_descriptors, 1, dir); > return rc; > } > > @@ -590,8 +581,8 @@ static int pqi_flush_cache(struct pqi_ctrl_info *ctrl_info, > { > int rc; > struct pqi_raid_path_request request; > - int pci_direction; > struct bmic_flush_cache *flush_cache; > + enum dma_data_direction dir; > > /* > * Don't bother trying to flush the cache if the controller is > @@ -608,16 +599,14 @@ static int pqi_flush_cache(struct pqi_ctrl_info *ctrl_info, > > rc = pqi_build_raid_path_request(ctrl_info, &request, > SA_FLUSH_CACHE, RAID_CTLR_LUNID, flush_cache, > - sizeof(*flush_cache), 0, &pci_direction); > + sizeof(*flush_cache), 0, &dir); > if (rc) > goto out; > > rc = pqi_submit_raid_request_synchronous(ctrl_info, &request.header, > 0, NULL, NO_TIMEOUT); > > - pqi_pci_unmap(ctrl_info->pci_dev, request.sg_descriptors, 1, > - pci_direction); > - > + pqi_pci_unmap(ctrl_info->pci_dev, request.sg_descriptors, 1, dir); > out: > kfree(flush_cache); > > @@ -629,20 +618,18 @@ static int pqi_write_host_wellness(struct pqi_ctrl_info *ctrl_info, > { > int rc; > struct pqi_raid_path_request request; > - int pci_direction; > + enum dma_data_direction dir; > > rc = pqi_build_raid_path_request(ctrl_info, &request, > BMIC_WRITE_HOST_WELLNESS, RAID_CTLR_LUNID, buffer, > - buffer_length, 0, &pci_direction); > + buffer_length, 0, &dir); > if (rc) > return rc; > > rc = pqi_submit_raid_request_synchronous(ctrl_info, &request.header, > 0, NULL, NO_TIMEOUT); > > - pqi_pci_unmap(ctrl_info->pci_dev, request.sg_descriptors, 1, > - pci_direction); > - > + pqi_pci_unmap(ctrl_info->pci_dev, request.sg_descriptors, 1, dir); > return rc; > } > > @@ -793,20 +780,18 @@ static int pqi_report_luns(struct pqi_ctrl_info *ctrl_info, u8 cmd, > void *buffer, size_t buffer_length) > { > int rc; > - int pci_direction; > + enum dma_data_direction dir; > struct pqi_raid_path_request request; > > rc = pqi_build_raid_path_request(ctrl_info, &request, > - cmd, RAID_CTLR_LUNID, buffer, buffer_length, 0, &pci_direction); > + cmd, RAID_CTLR_LUNID, buffer, buffer_length, 0, &dir); > if (rc) > return rc; > > rc = pqi_submit_raid_request_synchronous(ctrl_info, &request.header, 0, > NULL, NO_TIMEOUT); > > - pqi_pci_unmap(ctrl_info->pci_dev, request.sg_descriptors, 1, > - pci_direction); > - > + pqi_pci_unmap(ctrl_info->pci_dev, request.sg_descriptors, 1, dir); > return rc; > } > > @@ -1089,7 +1074,7 @@ static int pqi_get_raid_map(struct pqi_ctrl_info *ctrl_info, > struct pqi_scsi_dev *device) > { > int rc; > - int pci_direction; > + enum dma_data_direction dir; > struct pqi_raid_path_request request; > struct raid_map *raid_map; > > @@ -1099,15 +1084,14 @@ static int pqi_get_raid_map(struct pqi_ctrl_info *ctrl_info, > > rc = pqi_build_raid_path_request(ctrl_info, &request, > CISS_GET_RAID_MAP, device->scsi3addr, raid_map, > - sizeof(*raid_map), 0, &pci_direction); > + sizeof(*raid_map), 0, &dir); > if (rc) > goto error; > > rc = pqi_submit_raid_request_synchronous(ctrl_info, &request.header, 0, > NULL, NO_TIMEOUT); > > - pqi_pci_unmap(ctrl_info->pci_dev, request.sg_descriptors, 1, > - pci_direction); > + pqi_pci_unmap(ctrl_info->pci_dev, request.sg_descriptors, 1, dir); > > if (rc) > goto error; > @@ -3822,7 +3806,7 @@ static int pqi_report_device_capability(struct pqi_ctrl_info *ctrl_info) > rc = pqi_map_single(ctrl_info->pci_dev, > &request.data.report_device_capability.sg_descriptor, > capability, sizeof(*capability), > - PCI_DMA_FROMDEVICE); > + DMA_FROM_DEVICE); > if (rc) > goto out; > > @@ -3831,7 +3815,7 @@ static int pqi_report_device_capability(struct pqi_ctrl_info *ctrl_info) > > pqi_pci_unmap(ctrl_info->pci_dev, > &request.data.report_device_capability.sg_descriptor, 1, > - PCI_DMA_FROMDEVICE); > + DMA_FROM_DEVICE); > > if (rc) > goto out; > @@ -4158,7 +4142,7 @@ static int pqi_configure_events(struct pqi_ctrl_info *ctrl_info, > rc = pqi_map_single(ctrl_info->pci_dev, > request.data.report_event_configuration.sg_descriptors, > event_config, PQI_REPORT_EVENT_CONFIG_BUFFER_LENGTH, > - PCI_DMA_FROMDEVICE); > + DMA_FROM_DEVICE); > if (rc) > goto out; > > @@ -4167,7 +4151,7 @@ static int pqi_configure_events(struct pqi_ctrl_info *ctrl_info, > > pqi_pci_unmap(ctrl_info->pci_dev, > request.data.report_event_configuration.sg_descriptors, 1, > - PCI_DMA_FROMDEVICE); > + DMA_FROM_DEVICE); > > if (rc) > goto out; > @@ -4194,7 +4178,7 @@ static int pqi_configure_events(struct pqi_ctrl_info *ctrl_info, > rc = pqi_map_single(ctrl_info->pci_dev, > request.data.report_event_configuration.sg_descriptors, > event_config, PQI_REPORT_EVENT_CONFIG_BUFFER_LENGTH, > - PCI_DMA_TODEVICE); > + DMA_TO_DEVICE); > if (rc) > goto out; > > @@ -4203,7 +4187,7 @@ static int pqi_configure_events(struct pqi_ctrl_info *ctrl_info, > > pqi_pci_unmap(ctrl_info->pci_dev, > request.data.report_event_configuration.sg_descriptors, 1, > - PCI_DMA_TODEVICE); > + DMA_TO_DEVICE); > > out: > kfree(event_config); > @@ -5534,7 +5518,7 @@ static int pqi_passthru_ioctl(struct pqi_ctrl_info *ctrl_info, void __user *arg) > > rc = pqi_map_single(ctrl_info->pci_dev, > &request.sg_descriptors[0], kernel_buffer, > - iocommand.buf_size, PCI_DMA_BIDIRECTIONAL); > + iocommand.buf_size, DMA_BIDIRECTIONAL); > if (rc) > goto out; > > @@ -5548,7 +5532,7 @@ static int pqi_passthru_ioctl(struct pqi_ctrl_info *ctrl_info, void __user *arg) > > if (iocommand.buf_size > 0) > pqi_pci_unmap(ctrl_info->pci_dev, request.sg_descriptors, 1, > - PCI_DMA_BIDIRECTIONAL); > + DMA_BIDIRECTIONAL); > > memset(&iocommand.error_info, 0, sizeof(iocommand.error_info)); > > diff --git a/drivers/scsi/smartpqi/smartpqi_sis.c b/drivers/scsi/smartpqi/smartpqi_sis.c > index 5141bd4c9f06..ea91658c7060 100644 > --- a/drivers/scsi/smartpqi/smartpqi_sis.c > +++ b/drivers/scsi/smartpqi/smartpqi_sis.c > @@ -316,9 +316,9 @@ int sis_init_base_struct_addr(struct pqi_ctrl_info *ctrl_info) > put_unaligned_le32(ctrl_info->max_io_slots, > &base_struct->error_buffer_num_elements); > > - bus_address = pci_map_single(ctrl_info->pci_dev, base_struct, > - sizeof(*base_struct), PCI_DMA_TODEVICE); > - if (pci_dma_mapping_error(ctrl_info->pci_dev, bus_address)) { > + bus_address = dma_map_single(&ctrl_info->pci_dev->dev, base_struct, > + sizeof(*base_struct), DMA_TO_DEVICE); > + if (dma_mapping_error(&ctrl_info->pci_dev->dev, bus_address)) { > rc = -ENOMEM; > goto out; > } > @@ -331,9 +331,8 @@ int sis_init_base_struct_addr(struct pqi_ctrl_info *ctrl_info) > rc = sis_send_sync_cmd(ctrl_info, SIS_CMD_INIT_BASE_STRUCT_ADDRESS, > ¶ms); > > - pci_unmap_single(ctrl_info->pci_dev, bus_address, sizeof(*base_struct), > - PCI_DMA_TODEVICE); > - > + dma_unmap_single(&ctrl_info->pci_dev->dev, bus_address, > + sizeof(*base_struct), DMA_TO_DEVICE); > out: > kfree(base_struct_unaligned); >
Looks good,
Reviewed-by: Johannes Thumshirn <jthumshirn@suse.de>
diff --git a/drivers/scsi/smartpqi/smartpqi_init.c b/drivers/scsi/smartpqi/smartpqi_init.c index 2112ea6723c6..a25a07a0b7f0 100644 --- a/drivers/scsi/smartpqi/smartpqi_init.c +++ b/drivers/scsi/smartpqi/smartpqi_init.c @@ -349,16 +349,16 @@ static inline u32 pqi_read_heartbeat_counter(struct pqi_ctrl_info *ctrl_info) static int pqi_map_single(struct pci_dev *pci_dev, struct pqi_sg_descriptor *sg_descriptor, void *buffer, - size_t buffer_length, int data_direction) + size_t buffer_length, enum dma_data_direction data_direction) { dma_addr_t bus_address; - if (!buffer || buffer_length == 0 || data_direction == PCI_DMA_NONE) + if (!buffer || buffer_length == 0 || data_direction == DMA_NONE) return 0; - bus_address = pci_map_single(pci_dev, buffer, buffer_length, + bus_address = dma_map_single(&pci_dev->dev, buffer, buffer_length, data_direction); - if (pci_dma_mapping_error(pci_dev, bus_address)) + if (dma_mapping_error(&pci_dev->dev, bus_address)) return -ENOMEM; put_unaligned_le64((u64)bus_address, &sg_descriptor->address); @@ -370,15 +370,15 @@ static int pqi_map_single(struct pci_dev *pci_dev, static void pqi_pci_unmap(struct pci_dev *pci_dev, struct pqi_sg_descriptor *descriptors, int num_descriptors, - int data_direction) + enum dma_data_direction data_direction) { int i; - if (data_direction == PCI_DMA_NONE) + if (data_direction == DMA_NONE) return; for (i = 0; i < num_descriptors; i++) - pci_unmap_single(pci_dev, + dma_unmap_single(&pci_dev->dev, (dma_addr_t)get_unaligned_le64(&descriptors[i].address), get_unaligned_le32(&descriptors[i].length), data_direction); @@ -387,10 +387,9 @@ static void pqi_pci_unmap(struct pci_dev *pci_dev, static int pqi_build_raid_path_request(struct pqi_ctrl_info *ctrl_info, struct pqi_raid_path_request *request, u8 cmd, u8 *scsi3addr, void *buffer, size_t buffer_length, - u16 vpd_page, int *pci_direction) + u16 vpd_page, enum dma_data_direction *dir) { u8 *cdb; - int pci_dir; memset(request, 0, sizeof(*request)); @@ -458,23 +457,21 @@ static int pqi_build_raid_path_request(struct pqi_ctrl_info *ctrl_info, switch (request->data_direction) { case SOP_READ_FLAG: - pci_dir = PCI_DMA_FROMDEVICE; + *dir = DMA_FROM_DEVICE; break; case SOP_WRITE_FLAG: - pci_dir = PCI_DMA_TODEVICE; + *dir = DMA_TO_DEVICE; break; case SOP_NO_DIRECTION_FLAG: - pci_dir = PCI_DMA_NONE; + *dir = DMA_NONE; break; default: - pci_dir = PCI_DMA_BIDIRECTIONAL; + *dir = DMA_BIDIRECTIONAL; break; } - *pci_direction = pci_dir; - return pqi_map_single(ctrl_info->pci_dev, &request->sg_descriptors[0], - buffer, buffer_length, pci_dir); + buffer, buffer_length, *dir); } static inline void pqi_reinit_io_request(struct pqi_io_request *io_request) @@ -516,21 +513,19 @@ static int pqi_identify_controller(struct pqi_ctrl_info *ctrl_info, struct bmic_identify_controller *buffer) { int rc; - int pci_direction; + enum dma_data_direction dir; struct pqi_raid_path_request request; rc = pqi_build_raid_path_request(ctrl_info, &request, BMIC_IDENTIFY_CONTROLLER, RAID_CTLR_LUNID, buffer, - sizeof(*buffer), 0, &pci_direction); + sizeof(*buffer), 0, &dir); if (rc) return rc; rc = pqi_submit_raid_request_synchronous(ctrl_info, &request.header, 0, NULL, NO_TIMEOUT); - pqi_pci_unmap(ctrl_info->pci_dev, request.sg_descriptors, 1, - pci_direction); - + pqi_pci_unmap(ctrl_info->pci_dev, request.sg_descriptors, 1, dir); return rc; } @@ -538,21 +533,19 @@ static int pqi_scsi_inquiry(struct pqi_ctrl_info *ctrl_info, u8 *scsi3addr, u16 vpd_page, void *buffer, size_t buffer_length) { int rc; - int pci_direction; + enum dma_data_direction dir; struct pqi_raid_path_request request; rc = pqi_build_raid_path_request(ctrl_info, &request, INQUIRY, scsi3addr, buffer, buffer_length, vpd_page, - &pci_direction); + &dir); if (rc) return rc; rc = pqi_submit_raid_request_synchronous(ctrl_info, &request.header, 0, NULL, NO_TIMEOUT); - pqi_pci_unmap(ctrl_info->pci_dev, request.sg_descriptors, 1, - pci_direction); - + pqi_pci_unmap(ctrl_info->pci_dev, request.sg_descriptors, 1, dir); return rc; } @@ -562,13 +555,13 @@ static int pqi_identify_physical_device(struct pqi_ctrl_info *ctrl_info, size_t buffer_length) { int rc; - int pci_direction; + enum dma_data_direction dir; u16 bmic_device_index; struct pqi_raid_path_request request; rc = pqi_build_raid_path_request(ctrl_info, &request, BMIC_IDENTIFY_PHYSICAL_DEVICE, RAID_CTLR_LUNID, buffer, - buffer_length, 0, &pci_direction); + buffer_length, 0, &dir); if (rc) return rc; @@ -579,9 +572,7 @@ static int pqi_identify_physical_device(struct pqi_ctrl_info *ctrl_info, rc = pqi_submit_raid_request_synchronous(ctrl_info, &request.header, 0, NULL, NO_TIMEOUT); - pqi_pci_unmap(ctrl_info->pci_dev, request.sg_descriptors, 1, - pci_direction); - + pqi_pci_unmap(ctrl_info->pci_dev, request.sg_descriptors, 1, dir); return rc; } @@ -590,8 +581,8 @@ static int pqi_flush_cache(struct pqi_ctrl_info *ctrl_info, { int rc; struct pqi_raid_path_request request; - int pci_direction; struct bmic_flush_cache *flush_cache; + enum dma_data_direction dir; /* * Don't bother trying to flush the cache if the controller is @@ -608,16 +599,14 @@ static int pqi_flush_cache(struct pqi_ctrl_info *ctrl_info, rc = pqi_build_raid_path_request(ctrl_info, &request, SA_FLUSH_CACHE, RAID_CTLR_LUNID, flush_cache, - sizeof(*flush_cache), 0, &pci_direction); + sizeof(*flush_cache), 0, &dir); if (rc) goto out; rc = pqi_submit_raid_request_synchronous(ctrl_info, &request.header, 0, NULL, NO_TIMEOUT); - pqi_pci_unmap(ctrl_info->pci_dev, request.sg_descriptors, 1, - pci_direction); - + pqi_pci_unmap(ctrl_info->pci_dev, request.sg_descriptors, 1, dir); out: kfree(flush_cache); @@ -629,20 +618,18 @@ static int pqi_write_host_wellness(struct pqi_ctrl_info *ctrl_info, { int rc; struct pqi_raid_path_request request; - int pci_direction; + enum dma_data_direction dir; rc = pqi_build_raid_path_request(ctrl_info, &request, BMIC_WRITE_HOST_WELLNESS, RAID_CTLR_LUNID, buffer, - buffer_length, 0, &pci_direction); + buffer_length, 0, &dir); if (rc) return rc; rc = pqi_submit_raid_request_synchronous(ctrl_info, &request.header, 0, NULL, NO_TIMEOUT); - pqi_pci_unmap(ctrl_info->pci_dev, request.sg_descriptors, 1, - pci_direction); - + pqi_pci_unmap(ctrl_info->pci_dev, request.sg_descriptors, 1, dir); return rc; } @@ -793,20 +780,18 @@ static int pqi_report_luns(struct pqi_ctrl_info *ctrl_info, u8 cmd, void *buffer, size_t buffer_length) { int rc; - int pci_direction; + enum dma_data_direction dir; struct pqi_raid_path_request request; rc = pqi_build_raid_path_request(ctrl_info, &request, - cmd, RAID_CTLR_LUNID, buffer, buffer_length, 0, &pci_direction); + cmd, RAID_CTLR_LUNID, buffer, buffer_length, 0, &dir); if (rc) return rc; rc = pqi_submit_raid_request_synchronous(ctrl_info, &request.header, 0, NULL, NO_TIMEOUT); - pqi_pci_unmap(ctrl_info->pci_dev, request.sg_descriptors, 1, - pci_direction); - + pqi_pci_unmap(ctrl_info->pci_dev, request.sg_descriptors, 1, dir); return rc; } @@ -1089,7 +1074,7 @@ static int pqi_get_raid_map(struct pqi_ctrl_info *ctrl_info, struct pqi_scsi_dev *device) { int rc; - int pci_direction; + enum dma_data_direction dir; struct pqi_raid_path_request request; struct raid_map *raid_map; @@ -1099,15 +1084,14 @@ static int pqi_get_raid_map(struct pqi_ctrl_info *ctrl_info, rc = pqi_build_raid_path_request(ctrl_info, &request, CISS_GET_RAID_MAP, device->scsi3addr, raid_map, - sizeof(*raid_map), 0, &pci_direction); + sizeof(*raid_map), 0, &dir); if (rc) goto error; rc = pqi_submit_raid_request_synchronous(ctrl_info, &request.header, 0, NULL, NO_TIMEOUT); - pqi_pci_unmap(ctrl_info->pci_dev, request.sg_descriptors, 1, - pci_direction); + pqi_pci_unmap(ctrl_info->pci_dev, request.sg_descriptors, 1, dir); if (rc) goto error; @@ -3822,7 +3806,7 @@ static int pqi_report_device_capability(struct pqi_ctrl_info *ctrl_info) rc = pqi_map_single(ctrl_info->pci_dev, &request.data.report_device_capability.sg_descriptor, capability, sizeof(*capability), - PCI_DMA_FROMDEVICE); + DMA_FROM_DEVICE); if (rc) goto out; @@ -3831,7 +3815,7 @@ static int pqi_report_device_capability(struct pqi_ctrl_info *ctrl_info) pqi_pci_unmap(ctrl_info->pci_dev, &request.data.report_device_capability.sg_descriptor, 1, - PCI_DMA_FROMDEVICE); + DMA_FROM_DEVICE); if (rc) goto out; @@ -4158,7 +4142,7 @@ static int pqi_configure_events(struct pqi_ctrl_info *ctrl_info, rc = pqi_map_single(ctrl_info->pci_dev, request.data.report_event_configuration.sg_descriptors, event_config, PQI_REPORT_EVENT_CONFIG_BUFFER_LENGTH, - PCI_DMA_FROMDEVICE); + DMA_FROM_DEVICE); if (rc) goto out; @@ -4167,7 +4151,7 @@ static int pqi_configure_events(struct pqi_ctrl_info *ctrl_info, pqi_pci_unmap(ctrl_info->pci_dev, request.data.report_event_configuration.sg_descriptors, 1, - PCI_DMA_FROMDEVICE); + DMA_FROM_DEVICE); if (rc) goto out; @@ -4194,7 +4178,7 @@ static int pqi_configure_events(struct pqi_ctrl_info *ctrl_info, rc = pqi_map_single(ctrl_info->pci_dev, request.data.report_event_configuration.sg_descriptors, event_config, PQI_REPORT_EVENT_CONFIG_BUFFER_LENGTH, - PCI_DMA_TODEVICE); + DMA_TO_DEVICE); if (rc) goto out; @@ -4203,7 +4187,7 @@ static int pqi_configure_events(struct pqi_ctrl_info *ctrl_info, pqi_pci_unmap(ctrl_info->pci_dev, request.data.report_event_configuration.sg_descriptors, 1, - PCI_DMA_TODEVICE); + DMA_TO_DEVICE); out: kfree(event_config); @@ -5534,7 +5518,7 @@ static int pqi_passthru_ioctl(struct pqi_ctrl_info *ctrl_info, void __user *arg) rc = pqi_map_single(ctrl_info->pci_dev, &request.sg_descriptors[0], kernel_buffer, - iocommand.buf_size, PCI_DMA_BIDIRECTIONAL); + iocommand.buf_size, DMA_BIDIRECTIONAL); if (rc) goto out; @@ -5548,7 +5532,7 @@ static int pqi_passthru_ioctl(struct pqi_ctrl_info *ctrl_info, void __user *arg) if (iocommand.buf_size > 0) pqi_pci_unmap(ctrl_info->pci_dev, request.sg_descriptors, 1, - PCI_DMA_BIDIRECTIONAL); + DMA_BIDIRECTIONAL); memset(&iocommand.error_info, 0, sizeof(iocommand.error_info)); diff --git a/drivers/scsi/smartpqi/smartpqi_sis.c b/drivers/scsi/smartpqi/smartpqi_sis.c index 5141bd4c9f06..ea91658c7060 100644 --- a/drivers/scsi/smartpqi/smartpqi_sis.c +++ b/drivers/scsi/smartpqi/smartpqi_sis.c @@ -316,9 +316,9 @@ int sis_init_base_struct_addr(struct pqi_ctrl_info *ctrl_info) put_unaligned_le32(ctrl_info->max_io_slots, &base_struct->error_buffer_num_elements); - bus_address = pci_map_single(ctrl_info->pci_dev, base_struct, - sizeof(*base_struct), PCI_DMA_TODEVICE); - if (pci_dma_mapping_error(ctrl_info->pci_dev, bus_address)) { + bus_address = dma_map_single(&ctrl_info->pci_dev->dev, base_struct, + sizeof(*base_struct), DMA_TO_DEVICE); + if (dma_mapping_error(&ctrl_info->pci_dev->dev, bus_address)) { rc = -ENOMEM; goto out; } @@ -331,9 +331,8 @@ int sis_init_base_struct_addr(struct pqi_ctrl_info *ctrl_info) rc = sis_send_sync_cmd(ctrl_info, SIS_CMD_INIT_BASE_STRUCT_ADDRESS, ¶ms); - pci_unmap_single(ctrl_info->pci_dev, bus_address, sizeof(*base_struct), - PCI_DMA_TODEVICE); - + dma_unmap_single(&ctrl_info->pci_dev->dev, bus_address, + sizeof(*base_struct), DMA_TO_DEVICE); out: kfree(base_struct_unaligned);
The driver is currently using an odd mix of legacy PCI DMA API and generic DMA API calls, switch it over to the generic API entirely. Signed-off-by: Christoph Hellwig <hch@lst.de> --- drivers/scsi/smartpqi/smartpqi_init.c | 100 +++++++++++--------------- drivers/scsi/smartpqi/smartpqi_sis.c | 11 ++- 2 files changed, 47 insertions(+), 64 deletions(-)