Input: keyspan_remote - replace GFP_ATOMIC with GFP_KERNEL in keyspan_probe()
authorJia-Ju Bai <baijiaju1990@gmail.com>
Fri, 27 Jul 2018 18:32:36 +0000 (11:32 -0700)
committerDmitry Torokhov <dmitry.torokhov@gmail.com>
Fri, 27 Jul 2018 18:59:06 +0000 (11:59 -0700)
keyspan_probe() is never called in atomic context. It calls
usb_alloc_coherent() with GFP_ATOMIC, which is not necessary. GFP_ATOMIC
can be replaced with GFP_KERNEL.

This is found by a static analysis tool named DCNS written by myself.

Signed-off-by: Jia-Ju Bai <baijiaju1990@gmail.com>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
drivers/input/misc/keyspan_remote.c

index 67482b248b2d15005b621f08451495df36f21afd..a8937ceac66a88a4a9266493eb6db1dadacadb83 100644 (file)
@@ -466,7 +466,7 @@ static int keyspan_probe(struct usb_interface *interface, const struct usb_devic
        remote->in_endpoint = endpoint;
        remote->toggle = -1;    /* Set to -1 so we will always not match the toggle from the first remote message. */
 
-       remote->in_buffer = usb_alloc_coherent(udev, RECV_SIZE, GFP_ATOMIC, &remote->in_dma);
+       remote->in_buffer = usb_alloc_coherent(udev, RECV_SIZE, GFP_KERNEL, &remote->in_dma);
        if (!remote->in_buffer) {
                error = -ENOMEM;
                goto fail1;