scsi: megaraid_sas - replace pci_alloc_consitent with dma_alloc_coherent in ioctl path
Subsystems (2)
PATCH 4/6 scsi: megaraid_sas - replace pci_alloc_consitent with dma_alloc_coherent in ioctl path
Replaced pci_alloc_consistent with dma_alloc_coherent from the ioctl path. This is to avoid situations where ioctl fails for lack of memory (when system under heavy stress).
Signed-off-by Sumant Patro <[email protected]>
---
drivers/scsi/megaraid/megaraid_sas.c | 12 ++++++------ 1 files changed, 6 insertions(+), 6 deletions(-)
drivers/scsi/megaraid/megaraid_sas.c +6 -6
@@ -2738,9 +2738,9 @@ megasas_mgmt_fw_ioctl(struct megasas_ins* For each user buffer, create a mirror buffer and copy in */ for (i =0 ; i < ioc->sge_count; i++) { - kbuff_arr[i] =pci_alloc_consistent (instance->pdev, + kbuff_arr[i] =dma_alloc_coherent (&instance->pdev->dev, ioc->sgl[i].iov_len, - &buf_handle); + &buf_handle,GFP_KERNEL );if (!kbuff_arr[i]) {printk (KERN_DEBUG "megasas: Failed to alloc " "kernel SGL buffer for IOCTL \n" );
@@ -2767,8 +2767,8 @@ megasas_mgmt_fw_ioctl(struct megasas_ins }if (ioc->sense_len) { - sense =pci_alloc_consistent (instance->pdev, ioc->sense_len, - &sense_handle); + sense =dma_alloc_coherent (&instance->pdev->dev, ioc->sense_len, + &sense_handle,GFP_KERNEL );if (!sense) { error = -ENOMEM ; goto out;
@@ -2827,12 +2827,12 @@ megasas_mgmt_fw_ioctl(struct megasas_ins out:if (sense) { -pci_free_consistent (instance->pdev, ioc->sense_len, +dma_free_coherent (&instance->pdev->dev, ioc->sense_len, sense, sense_handle); }for (i =0 ; i < ioc->sge_count && kbuff_arr[i]; i++) { -pci_free_consistent (instance->pdev, +dma_free_coherent (&instance->pdev->dev, kern_sge32[i].length, kbuff_arr[i], kern_sge32[i].phys_addr); }