Input: appletouch - replace GFP_ATOMIC with GFP_KERNEL
authorJia-Ju Bai <baijiaju1990@gmail.com>
Fri, 27 Jul 2018 18:34:26 +0000 (11:34 -0700)
committerDmitry Torokhov <dmitry.torokhov@gmail.com>
Fri, 27 Jul 2018 18:59:09 +0000 (11:59 -0700)
atp_open(), atp_recover() and atp_resume() are never called in atomic
context. They call usb_submit_urb() 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/mouse/appletouch.c

index 032d27983b6c25eadb63163fb858275889597701..f593ec96c95f73992ac40952554a17896c75190c 100644 (file)
@@ -810,7 +810,7 @@ static int atp_open(struct input_dev *input)
 {
        struct atp *dev = input_get_drvdata(input);
 
-       if (usb_submit_urb(dev->urb, GFP_ATOMIC))
+       if (usb_submit_urb(dev->urb, GFP_KERNEL))
                return -EIO;
 
        dev->open = true;
@@ -976,7 +976,7 @@ static int atp_recover(struct atp *dev)
        if (error)
                return error;
 
-       if (dev->open && usb_submit_urb(dev->urb, GFP_ATOMIC))
+       if (dev->open && usb_submit_urb(dev->urb, GFP_KERNEL))
                return -EIO;
 
        return 0;
@@ -994,7 +994,7 @@ static int atp_resume(struct usb_interface *iface)
 {
        struct atp *dev = usb_get_intfdata(iface);
 
-       if (dev->open && usb_submit_urb(dev->urb, GFP_ATOMIC))
+       if (dev->open && usb_submit_urb(dev->urb, GFP_KERNEL))
                return -EIO;
 
        return 0;