scsi: message: fusion: Use dma_alloc_coherent() in mpt_alloc_fw_memory()
authorChristophe JAILLET <christophe.jaillet@wanadoo.fr>
Thu, 6 Jan 2022 21:54:13 +0000 (22:54 +0100)
committerMartin K. Petersen <martin.petersen@oracle.com>
Mon, 10 Jan 2022 15:33:51 +0000 (10:33 -0500)
In [1], Christoph Hellwig has proposed to remove the wrappers in
include/linux/pci-dma-compat.h.

Some reasons why this API should be removed have been given by Julia Lawall
in [2].

mpt_alloc_fw_memory() should still use GFP_ATOMIC, because it can be called
from mpt_do_upload() which might sleep.

[1]: https://lore.kernel.org/kernel-janitors/20200421081257.GA131897@infradead.org/
[2]: https://lore.kernel.org/kernel-janitors/alpine.DEB.2.22.394.2007120902170.2424@hadrien/

Link: https://lore.kernel.org/r/db3db9db219005b75659561d08117d312d0cfb13.1641500561.git.christophe.jaillet@wanadoo.fr
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/message/fusion/mptbase.c

index 5a3b7b5..c4702ef 100644 (file)
@@ -3512,7 +3512,8 @@ mpt_alloc_fw_memory(MPT_ADAPTER *ioc, int size)
                rc = 0;
                goto out;
        }
-       ioc->cached_fw = pci_alloc_consistent(ioc->pcidev, size, &ioc->cached_fw_dma);
+       ioc->cached_fw = dma_alloc_coherent(&ioc->pcidev->dev, size,
+                                           &ioc->cached_fw_dma, GFP_ATOMIC);
        if (!ioc->cached_fw) {
                printk(MYIOC_s_ERR_FMT "Unable to allocate memory for the cached firmware image!\n",
                    ioc->name);