Subject: Re: kernel 3.5.2/amd64: iwlwifi 0000:03:00.0: failed to allocate pci memory

From: Larry Finger <[email-masked]>
Date: Mon, 10 Sep 2012 10:12:59 -0500

On 09/10/2012 05:24 AM, Johannes Berg wrote:
> On Sat, 2012-09-08 at 20:57 +0200, Johannes Berg wrote:
>
>>> [856806.497959]  [<ffffffff810cf54c>] warn_alloc_failed+0x117/0x12c
>>> [856806.497963]  [<ffffffff810d23af>] __alloc_pages_nodemask+0x6e3/0x792
>>> [856806.497969]  [<ffffffff812b7f41>] ? pfn_to_dma_pte+0x116/0x15e
>>> [856806.497976]  [<ffffffff810ff58b>] alloc_pages_current+0xcd/0xee
>>> [856806.497979]  [<ffffffff810cecca>] __get_free_pages+0x9/0x45
>>> [856806.497982]  [<ffffffff812ba67d>] intel_alloc_coherent+0x84/0xe7
>>> [856806.497986]  [<ffffffff81085cf8>] ? arch_local_irq_save+0x15/0x1b
>>> [856806.497999]  [<ffffffffa0b84afc>] iwl_ucode_callback+0xa49/0xc0d [iwlwifi]
>>
>> Yes, unfortunately we need a whole bunch of contiguous memory to load
>> the firmware.
>>
>>> Any ideas?
>>
>> Nothing we can do from the driver side, I'm afraid.
>
> Turns out I was wrong. Here's a patch you can test. Note that we still
> need a lot of DMA-coherent memory for other things, but at least for the
> firmware image we don't.
>
> http://p.sipsolutions.net/11ea33b376a5bac5.txt

That patch looks like a good way to solve the problem; however, some 
architectures need an explicit "#include <linux/vmalloc.h>" somewhere in the 
headers, even though x86 does not, and I did not see it in the patch. I didn't 
do a lot of checking, but grep did not find one in the existing code.

Larry

--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to [email-masked]
More majordomo info at  http://vger.kernel.org/majordomo-info.html