staging: unisys: visornic: Replace GFP_ATOMIC with GFP_KERNEL
authorHariprasad Kelam <hariprasad.kelam@gmail.com>
Wed, 22 May 2019 17:05:30 +0000 (22:35 +0530)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 23 May 2019 07:23:15 +0000 (09:23 +0200)
As per below information

GFP_KERNEL  FLAG

This is a normal allocation and might block. This is the flag to use in
process context code when it is safe to sleep.

GFP_ATOMIC FLAG

The allocation is high-priority and does not sleep. This is the flag to
use in interrupt handlers, bottom halves and other situations where you
cannot sleep

And we can take advantage of GFP_KERNEL , as when system is in low
memory chances of getting success is high compared to GFP_ATOMIC.

As visornic_probe is in  process context we can use GPF_KERNEL.

Signed-off-by: Hariprasad Kelam <hariprasad.kelam@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/unisys/visornic/visornic_main.c

index 1c1a470d2e50f03201b442174ba3af205abe4763..9d4f1dab0968dd04d5ed75daf42f240dfe00c71c 100644 (file)
@@ -1861,12 +1861,12 @@ static int visornic_probe(struct visor_device *dev)
        skb_queue_head_init(&devdata->xmitbufhead);
 
        /* create a cmdrsp we can use to post and unpost rcv buffers */
-       devdata->cmdrsp_rcv = kmalloc(SIZEOF_CMDRSP, GFP_ATOMIC);
+       devdata->cmdrsp_rcv = kmalloc(SIZEOF_CMDRSP, GFP_KERNEL);
        if (!devdata->cmdrsp_rcv) {
                err = -ENOMEM;
                goto cleanup_rcvbuf;
        }
-       devdata->xmit_cmdrsp = kmalloc(SIZEOF_CMDRSP, GFP_ATOMIC);
+       devdata->xmit_cmdrsp = kmalloc(SIZEOF_CMDRSP, GFP_KERNEL);
        if (!devdata->xmit_cmdrsp) {
                err = -ENOMEM;
                goto cleanup_cmdrsp_rcv;