[PATCH 08/28] be2iscsi: switch to generic DMA API

2018-10-14 Thread Christoph Hellwig
Switch from the legacy PCI DMA API to the generic DMA API.

Signed-off-by: Christoph Hellwig 
Reviewed-by: Johannes Thumshirn 
---
 drivers/scsi/be2iscsi/be_cmds.c  | 10 ++---
 drivers/scsi/be2iscsi/be_iscsi.c | 13 +++---
 drivers/scsi/be2iscsi/be_main.c  | 72 ++--
 drivers/scsi/be2iscsi/be_mgmt.c  | 27 ++--
 4 files changed, 58 insertions(+), 64 deletions(-)

diff --git a/drivers/scsi/be2iscsi/be_cmds.c b/drivers/scsi/be2iscsi/be_cmds.c
index c10aac4dbc5e..0a6972ee94d7 100644
--- a/drivers/scsi/be2iscsi/be_cmds.c
+++ b/drivers/scsi/be2iscsi/be_cmds.c
@@ -520,7 +520,7 @@ int beiscsi_process_mcc_compl(struct be_ctrl_info *ctrl,
 **/
tag_mem = >ptag_state[tag].tag_mem_state;
if (tag_mem->size) {
-   pci_free_consistent(ctrl->pdev, tag_mem->size,
+   dma_free_coherent(>pdev->dev, tag_mem->size,
tag_mem->va, tag_mem->dma);
tag_mem->size = 0;
}
@@ -1269,12 +1269,12 @@ int beiscsi_check_supported_fw(struct be_ctrl_info 
*ctrl,
struct be_sge *sge = nonembedded_sgl(wrb);
int status = 0;
 
-   nonemb_cmd.va = pci_alloc_consistent(ctrl->pdev,
+   nonemb_cmd.va = dma_alloc_coherent(>pdev->dev,
sizeof(struct be_mgmt_controller_attributes),
-   _cmd.dma);
+   _cmd.dma, GFP_KERNEL);
if (nonemb_cmd.va == NULL) {
beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_INIT,
-   "BG_%d : pci_alloc_consistent failed in %s\n",
+   "BG_%d : dma_alloc_coherent failed in %s\n",
__func__);
return -ENOMEM;
}
@@ -1314,7 +1314,7 @@ int beiscsi_check_supported_fw(struct be_ctrl_info *ctrl,
"BG_%d :  Failed in beiscsi_check_supported_fw\n");
mutex_unlock(>mbox_lock);
if (nonemb_cmd.va)
-   pci_free_consistent(ctrl->pdev, nonemb_cmd.size,
+   dma_free_coherent(>pdev->dev, nonemb_cmd.size,
nonemb_cmd.va, nonemb_cmd.dma);
 
return status;
diff --git a/drivers/scsi/be2iscsi/be_iscsi.c b/drivers/scsi/be2iscsi/be_iscsi.c
index c8f0a2144b44..913290378afb 100644
--- a/drivers/scsi/be2iscsi/be_iscsi.c
+++ b/drivers/scsi/be2iscsi/be_iscsi.c
@@ -1071,9 +1071,9 @@ static int beiscsi_open_conn(struct iscsi_endpoint *ep,
else
req_memsize = sizeof(struct tcp_connect_and_offload_in_v1);
 
-   nonemb_cmd.va = pci_alloc_consistent(phba->ctrl.pdev,
+   nonemb_cmd.va = dma_alloc_coherent(>ctrl.pdev->dev,
req_memsize,
-   _cmd.dma);
+   _cmd.dma, GFP_KERNEL);
if (nonemb_cmd.va == NULL) {
 
beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_CONFIG,
@@ -1091,7 +1091,7 @@ static int beiscsi_open_conn(struct iscsi_endpoint *ep,
"BS_%d : mgmt_open_connection Failed for cid=%d\n",
beiscsi_ep->ep_cid);
 
-   pci_free_consistent(phba->ctrl.pdev, nonemb_cmd.size,
+   dma_free_coherent(>ctrl.pdev->dev, nonemb_cmd.size,
nonemb_cmd.va, nonemb_cmd.dma);
beiscsi_free_ep(beiscsi_ep);
return -EAGAIN;
@@ -1104,8 +1104,9 @@ static int beiscsi_open_conn(struct iscsi_endpoint *ep,
"BS_%d : mgmt_open_connection Failed");
 
if (ret != -EBUSY)
-   pci_free_consistent(phba->ctrl.pdev, nonemb_cmd.size,
-   nonemb_cmd.va, nonemb_cmd.dma);
+   dma_free_coherent(>ctrl.pdev->dev,
+   nonemb_cmd.size, nonemb_cmd.va,
+   nonemb_cmd.dma);
 
beiscsi_free_ep(beiscsi_ep);
return ret;
@@ -1118,7 +1119,7 @@ static int beiscsi_open_conn(struct iscsi_endpoint *ep,
beiscsi_log(phba, KERN_INFO, BEISCSI_LOG_CONFIG,
"BS_%d : mgmt_open_connection Success\n");
 
-   pci_free_consistent(phba->ctrl.pdev, nonemb_cmd.size,
+   dma_free_coherent(>ctrl.pdev->dev, nonemb_cmd.size,
nonemb_cmd.va, nonemb_cmd.dma);
return 0;
 }
diff --git a/drivers/scsi/be2iscsi/be_main.c b/drivers/scsi/be2iscsi/be_main.c
index d544453aa466..5278fdc2c52d 100644
--- a/drivers/scsi/be2iscsi/be_main.c
+++ b/drivers/scsi/be2iscsi/be_main.c
@@ -511,18 +511,9 @@ static int beiscsi_enable_pci(struct pci_dev *pcidev)
}
 
pci_set_master(pcidev);
-   ret = pci_set_dma_mask(pcidev, DMA_BIT_MASK(64));
+   ret = dma_set_mask_and_coherent(>dev, DMA_BIT_MASK(64));
if (ret) {
-   ret = 

Re: [PATCH 08/28] be2iscsi: switch to generic DMA API

2018-10-12 Thread Johannes Thumshirn
Looks good,
Reviewed-by: Johannes Thumshirn 
-- 
Johannes ThumshirnSUSE Labs 
jthumsh...@suse.de+49 911 74053 689
SUSE LINUX GmbH, Maxfeldstr. 5, 90409 Nürnberg
GF: Felix Imendörffer, Jane Smithard, Graham Norton
HRB 21284 (AG Nürnberg)
Key fingerprint = EC38 9CAB C2C4 F25D 8600 D0D0 0393 969D 2D76 0850


[PATCH 08/28] be2iscsi: switch to generic DMA API

2018-10-11 Thread Christoph Hellwig
Switch from the legacy PCI DMA API to the generic DMA API.

Signed-off-by: Christoph Hellwig 
---
 drivers/scsi/be2iscsi/be_cmds.c  | 10 ++---
 drivers/scsi/be2iscsi/be_iscsi.c | 13 +++---
 drivers/scsi/be2iscsi/be_main.c  | 72 ++--
 drivers/scsi/be2iscsi/be_mgmt.c  | 27 ++--
 4 files changed, 58 insertions(+), 64 deletions(-)

diff --git a/drivers/scsi/be2iscsi/be_cmds.c b/drivers/scsi/be2iscsi/be_cmds.c
index c10aac4dbc5e..0a6972ee94d7 100644
--- a/drivers/scsi/be2iscsi/be_cmds.c
+++ b/drivers/scsi/be2iscsi/be_cmds.c
@@ -520,7 +520,7 @@ int beiscsi_process_mcc_compl(struct be_ctrl_info *ctrl,
 **/
tag_mem = >ptag_state[tag].tag_mem_state;
if (tag_mem->size) {
-   pci_free_consistent(ctrl->pdev, tag_mem->size,
+   dma_free_coherent(>pdev->dev, tag_mem->size,
tag_mem->va, tag_mem->dma);
tag_mem->size = 0;
}
@@ -1269,12 +1269,12 @@ int beiscsi_check_supported_fw(struct be_ctrl_info 
*ctrl,
struct be_sge *sge = nonembedded_sgl(wrb);
int status = 0;
 
-   nonemb_cmd.va = pci_alloc_consistent(ctrl->pdev,
+   nonemb_cmd.va = dma_alloc_coherent(>pdev->dev,
sizeof(struct be_mgmt_controller_attributes),
-   _cmd.dma);
+   _cmd.dma, GFP_KERNEL);
if (nonemb_cmd.va == NULL) {
beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_INIT,
-   "BG_%d : pci_alloc_consistent failed in %s\n",
+   "BG_%d : dma_alloc_coherent failed in %s\n",
__func__);
return -ENOMEM;
}
@@ -1314,7 +1314,7 @@ int beiscsi_check_supported_fw(struct be_ctrl_info *ctrl,
"BG_%d :  Failed in beiscsi_check_supported_fw\n");
mutex_unlock(>mbox_lock);
if (nonemb_cmd.va)
-   pci_free_consistent(ctrl->pdev, nonemb_cmd.size,
+   dma_free_coherent(>pdev->dev, nonemb_cmd.size,
nonemb_cmd.va, nonemb_cmd.dma);
 
return status;
diff --git a/drivers/scsi/be2iscsi/be_iscsi.c b/drivers/scsi/be2iscsi/be_iscsi.c
index c8f0a2144b44..913290378afb 100644
--- a/drivers/scsi/be2iscsi/be_iscsi.c
+++ b/drivers/scsi/be2iscsi/be_iscsi.c
@@ -1071,9 +1071,9 @@ static int beiscsi_open_conn(struct iscsi_endpoint *ep,
else
req_memsize = sizeof(struct tcp_connect_and_offload_in_v1);
 
-   nonemb_cmd.va = pci_alloc_consistent(phba->ctrl.pdev,
+   nonemb_cmd.va = dma_alloc_coherent(>ctrl.pdev->dev,
req_memsize,
-   _cmd.dma);
+   _cmd.dma, GFP_KERNEL);
if (nonemb_cmd.va == NULL) {
 
beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_CONFIG,
@@ -1091,7 +1091,7 @@ static int beiscsi_open_conn(struct iscsi_endpoint *ep,
"BS_%d : mgmt_open_connection Failed for cid=%d\n",
beiscsi_ep->ep_cid);
 
-   pci_free_consistent(phba->ctrl.pdev, nonemb_cmd.size,
+   dma_free_coherent(>ctrl.pdev->dev, nonemb_cmd.size,
nonemb_cmd.va, nonemb_cmd.dma);
beiscsi_free_ep(beiscsi_ep);
return -EAGAIN;
@@ -1104,8 +1104,9 @@ static int beiscsi_open_conn(struct iscsi_endpoint *ep,
"BS_%d : mgmt_open_connection Failed");
 
if (ret != -EBUSY)
-   pci_free_consistent(phba->ctrl.pdev, nonemb_cmd.size,
-   nonemb_cmd.va, nonemb_cmd.dma);
+   dma_free_coherent(>ctrl.pdev->dev,
+   nonemb_cmd.size, nonemb_cmd.va,
+   nonemb_cmd.dma);
 
beiscsi_free_ep(beiscsi_ep);
return ret;
@@ -1118,7 +1119,7 @@ static int beiscsi_open_conn(struct iscsi_endpoint *ep,
beiscsi_log(phba, KERN_INFO, BEISCSI_LOG_CONFIG,
"BS_%d : mgmt_open_connection Success\n");
 
-   pci_free_consistent(phba->ctrl.pdev, nonemb_cmd.size,
+   dma_free_coherent(>ctrl.pdev->dev, nonemb_cmd.size,
nonemb_cmd.va, nonemb_cmd.dma);
return 0;
 }
diff --git a/drivers/scsi/be2iscsi/be_main.c b/drivers/scsi/be2iscsi/be_main.c
index d544453aa466..5278fdc2c52d 100644
--- a/drivers/scsi/be2iscsi/be_main.c
+++ b/drivers/scsi/be2iscsi/be_main.c
@@ -511,18 +511,9 @@ static int beiscsi_enable_pci(struct pci_dev *pcidev)
}
 
pci_set_master(pcidev);
-   ret = pci_set_dma_mask(pcidev, DMA_BIT_MASK(64));
+   ret = dma_set_mask_and_coherent(>dev, DMA_BIT_MASK(64));
if (ret) {
-   ret = pci_set_dma_mask(pcidev, DMA_BIT_MASK(32));
-