OSDN Git Service

misc: ibmvmc: Use GFP_ATOMIC under spin lock
authorWei Yongjun <weiyongjun1@huawei.com>
Sat, 26 May 2018 09:45:59 +0000 (09:45 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 7 Jul 2018 15:35:00 +0000 (17:35 +0200)
The function alloc_dma_buffer() is called from ibmvmc_add_buffer(),
in which a spin lock be held here, so we should use GFP_ATOMIC when
a lock is held.

Fixes: 0eca353e7ae7 ("misc: IBM Virtual Management Channel Driver (VMC)")
Signed-off-by: Wei Yongjun <weiyongjun1@huawei.com>
Reviewed-by: Bryant G. Ly <bryantly@linux.vnet.ibm.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/misc/ibmvmc.c

index fb83d13..8f82bb9 100644 (file)
@@ -273,7 +273,7 @@ static void *alloc_dma_buffer(struct vio_dev *vdev, size_t size,
                              dma_addr_t *dma_handle)
 {
        /* allocate memory */
-       void *buffer = kzalloc(size, GFP_KERNEL);
+       void *buffer = kzalloc(size, GFP_ATOMIC);
 
        if (!buffer) {
                *dma_handle = 0;