]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
media: em28xx-audio: use GFP_KERNEL for memory allocation during init
authorSebastian Andrzej Siewior <bigeasy@linutronix.de>
Wed, 20 Jun 2018 11:00:45 +0000 (07:00 -0400)
committerMauro Carvalho Chehab <mchehab+samsung@kernel.org>
Wed, 12 Sep 2018 12:00:36 +0000 (08:00 -0400)
As far as I can tell em28xx_audio_urb_init() is called once during
initialization from non atomic context. Memory allocation from
non atomic context should use GFP_KERNEL to avoid using emergency pool
for memory allocation.
Use GFP_KERNEL for memory allocation.

Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
drivers/media/usb/em28xx/em28xx-audio.c

index d5e2c19f600d7e2456dd8a8e30907f06453b271b..8fad891fd6019df41e026510b5097407deb85317 100644 (file)
@@ -842,11 +842,11 @@ static int em28xx_audio_urb_init(struct em28xx *dev)
 
        dev->adev.transfer_buffer = kcalloc(num_urb,
                                            sizeof(*dev->adev.transfer_buffer),
-                                           GFP_ATOMIC);
+                                           GFP_KERNEL);
        if (!dev->adev.transfer_buffer)
                return -ENOMEM;
 
-       dev->adev.urb = kcalloc(num_urb, sizeof(*dev->adev.urb), GFP_ATOMIC);
+       dev->adev.urb = kcalloc(num_urb, sizeof(*dev->adev.urb), GFP_KERNEL);
        if (!dev->adev.urb) {
                kfree(dev->adev.transfer_buffer);
                return -ENOMEM;
@@ -859,14 +859,14 @@ static int em28xx_audio_urb_init(struct em28xx *dev)
                int j, k;
                void *buf;
 
-               urb = usb_alloc_urb(npackets, GFP_ATOMIC);
+               urb = usb_alloc_urb(npackets, GFP_KERNEL);
                if (!urb) {
                        em28xx_audio_free_urb(dev);
                        return -ENOMEM;
                }
                dev->adev.urb[i] = urb;
 
-               buf = usb_alloc_coherent(udev, npackets * ep_size, GFP_ATOMIC,
+               buf = usb_alloc_coherent(udev, npackets * ep_size, GFP_KERNEL,
                                         &urb->transfer_dma);
                if (!buf) {
                        dev_err(&dev->intf->dev,