Skip to content

Commit b1fa122

Browse files
Christoph Hellwigmartinkpetersen
authored andcommitted
scsi: 3w-sas: fully convert to the generic DMA API
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> Acked-by: Adam Radford <aradford@gmail.com> Reviewed-by: Johannes Thumshirn <jthumshirn@suse.de> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
1 parent bd6cf46 commit b1fa122

File tree

1 file changed

+17
-21
lines changed

1 file changed

+17
-21
lines changed

drivers/scsi/3w-sas.c

Lines changed: 17 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -644,8 +644,8 @@ static int twl_allocate_memory(TW_Device_Extension *tw_dev, int size, int which)
644644
unsigned long *cpu_addr;
645645
int retval = 1;
646646

647-
cpu_addr = pci_zalloc_consistent(tw_dev->tw_pci_dev, size * TW_Q_LENGTH,
648-
&dma_handle);
647+
cpu_addr = dma_zalloc_coherent(&tw_dev->tw_pci_dev->dev,
648+
size * TW_Q_LENGTH, &dma_handle, GFP_KERNEL);
649649
if (!cpu_addr) {
650650
TW_PRINTK(tw_dev->host, TW_DRIVER, 0x5, "Memory allocation failed");
651651
goto out;
@@ -899,19 +899,19 @@ static int twl_fill_sense(TW_Device_Extension *tw_dev, int i, int request_id, in
899899
static void twl_free_device_extension(TW_Device_Extension *tw_dev)
900900
{
901901
if (tw_dev->command_packet_virt[0])
902-
pci_free_consistent(tw_dev->tw_pci_dev,
902+
dma_free_coherent(&tw_dev->tw_pci_dev->dev,
903903
sizeof(TW_Command_Full)*TW_Q_LENGTH,
904904
tw_dev->command_packet_virt[0],
905905
tw_dev->command_packet_phys[0]);
906906

907907
if (tw_dev->generic_buffer_virt[0])
908-
pci_free_consistent(tw_dev->tw_pci_dev,
908+
dma_free_coherent(&tw_dev->tw_pci_dev->dev,
909909
TW_SECTOR_SIZE*TW_Q_LENGTH,
910910
tw_dev->generic_buffer_virt[0],
911911
tw_dev->generic_buffer_phys[0]);
912912

913913
if (tw_dev->sense_buffer_virt[0])
914-
pci_free_consistent(tw_dev->tw_pci_dev,
914+
dma_free_coherent(&tw_dev->tw_pci_dev->dev,
915915
sizeof(TW_Command_Apache_Header)*
916916
TW_Q_LENGTH,
917917
tw_dev->sense_buffer_virt[0],
@@ -1571,14 +1571,12 @@ static int twl_probe(struct pci_dev *pdev, const struct pci_device_id *dev_id)
15711571
pci_set_master(pdev);
15721572
pci_try_set_mwi(pdev);
15731573

1574-
if (pci_set_dma_mask(pdev, DMA_BIT_MASK(64))
1575-
|| pci_set_consistent_dma_mask(pdev, DMA_BIT_MASK(64)))
1576-
if (pci_set_dma_mask(pdev, DMA_BIT_MASK(32))
1577-
|| pci_set_consistent_dma_mask(pdev, DMA_BIT_MASK(32))) {
1578-
TW_PRINTK(host, TW_DRIVER, 0x18, "Failed to set dma mask");
1579-
retval = -ENODEV;
1580-
goto out_disable_device;
1581-
}
1574+
if (dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(64)) ||
1575+
dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(32))) {
1576+
TW_PRINTK(host, TW_DRIVER, 0x18, "Failed to set dma mask");
1577+
retval = -ENODEV;
1578+
goto out_disable_device;
1579+
}
15821580

15831581
host = scsi_host_alloc(&driver_template, sizeof(TW_Device_Extension));
15841582
if (!host) {
@@ -1805,14 +1803,12 @@ static int twl_resume(struct pci_dev *pdev)
18051803
pci_set_master(pdev);
18061804
pci_try_set_mwi(pdev);
18071805

1808-
if (pci_set_dma_mask(pdev, DMA_BIT_MASK(64))
1809-
|| pci_set_consistent_dma_mask(pdev, DMA_BIT_MASK(64)))
1810-
if (pci_set_dma_mask(pdev, DMA_BIT_MASK(32))
1811-
|| pci_set_consistent_dma_mask(pdev, DMA_BIT_MASK(32))) {
1812-
TW_PRINTK(host, TW_DRIVER, 0x25, "Failed to set dma mask during resume");
1813-
retval = -ENODEV;
1814-
goto out_disable_device;
1815-
}
1806+
if (dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(64)) ||
1807+
dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(32))) {
1808+
TW_PRINTK(host, TW_DRIVER, 0x25, "Failed to set dma mask during resume");
1809+
retval = -ENODEV;
1810+
goto out_disable_device;
1811+
}
18161812

18171813
/* Initialize the card */
18181814
if (twl_reset_sequence(tw_dev, 0)) {

0 commit comments

Comments
 (0)