scsi: ibmvscsi: Use GFP_KERNEL with dma_alloc_coherent() in initialize_event_pool()
authorTyrel Datwyler <tyreld@linux.vnet.ibm.com>
Thu, 10 Jan 2019 02:59:09 +0000 (18:59 -0800)
committerMartin K. Petersen <martin.petersen@oracle.com>
Tue, 19 Oct 2021 02:38:34 +0000 (22:38 -0400)
During driver probe we allocate a dma region for our event pool.
Currently, zero is passed for the gfp_flags parameter. Driver probe
callbacks are run in process context and we hold no locks so we can sleep
here if necessary.

Fix by passing GFP_KERNEL explicitly to dma_alloc_coherent().

Link: https://lore.kernel.org/r/1547089149-20577-1-git-send-email-tyreld@linux.vnet.ibm.com
Reviewed-by: Brian King <brking@linux.vnet.ibm.com>
Signed-off-by: Tyrel Datwyler <tyreld@linux.vnet.ibm.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/ibmvscsi/ibmvscsi.c

index 1086059..1b2171b 100644 (file)
@@ -454,7 +454,7 @@ static int initialize_event_pool(struct event_pool *pool,
        pool->iu_storage =
            dma_alloc_coherent(hostdata->dev,
                               pool->size * sizeof(*pool->iu_storage),
-                              &pool->iu_token, 0);
+                              &pool->iu_token, GFP_KERNEL);
        if (!pool->iu_storage) {
                kfree(pool->events);
                return -ENOMEM;