• Johannes Berg's avatar
    USB: pass mem_flags to dma_alloc_coherent · a8aa401f
    Johannes Berg authored
    When I want to use my webcam, I get:
    
                                     vvvvvvv
    cheese: page allocation failure. order:5, mode:0x8004
    Pid: 8100, comm: cheese Not tainted 2.6.30-rc2-wl-dirty #102
    Call Trace:
     [<ffffffff802c5d8e>] __alloc_pages_internal+0x3fe/0x520
     [<ffffffff80210a20>] dma_generic_alloc_coherent+0x90/0x120
     [<ffffffffa001c91e>] hcd_buffer_alloc+0xee/0x130 [usbcore]
     [<ffffffffa000d52d>] usb_buffer_alloc+0x2d/0x40 [usbcore]
     [<ffffffffa0160e14>] uvc_alloc_urb_buffers+0x84/0x140 [uvcvideo]
     [<ffffffffa0160ff6>] uvc_init_video+0x126/0x400 [uvcvideo]
     [...]
    
    Oddly, I remembered fixing this and putting in __GFP_NOWARN
    because uvcvideo retries a smaller allocation. However, the
    allocation function doesn't pass the gfp flags through to
    dma_alloc_coherent so we still get the warning!
    Signed-off-by: default avatarJohannes Berg <johannes@sipsolutions.net>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
    a8aa401f
buffer.c 3.23 KB