iwlwifi for 7260 card: DMA memory allocation fails

Josef Söntgen josef.soentgen at ...1...
Tue Dec 2 23:10:17 CET 2014


Hi Christian,

* Christian Menard <christian.menard at ...104...> [2014-12-02 21:07:48 +0300]:
> Thank you for the explanation. I traced down two such allocs and changed the 
> flag accordingly. Now the log is error free (besides the "slab too 
> large" messages mentioned before). However, as it appears the driver is not 
> working. I get the message "iwl driver loaded" but then nothing happens 
> anymore. I guess there should be more output for searching the network, 
> establishing connection etc? 

Well, it is somewhat unfortunate that even if the driver fails to load
properly there is still “iwl driver loaded” printed…

> 
> I tried to track down the problem, but so far I only found that wpa_supplicant 
> blocks on it's socket in netlink_init(). The _handle() function which would 
> unblock wpa_supplicant is never called. Oddly, this part seems to work fine 
> without my changes to the DMA memory allocations. Do you have any ideas what 
> might be wrong?

My guess is that the wifi_drv_ep is currently blocked or rather there
is a deadlock somewhere involving the task scheduling. A signal is
send if the the socket_call interface is used and if the signal is not
handled by the entrypoint wpa_supplicant will hang indefinitely as
you have already observed.

It is probably worth a shot to look at the task scheduling by setting
DEBUG_SCHEDULE to 1 in lx.h. You can also edit Scheduler::schedule()
directly and add a print statement on line 175. Since the scheduling
of tasks is done periodicly you should see some output in a good case
scenario. If not, the wifi_drv_ep is not running properly which is
the case if some task blocks w/o invoking the scheduling of another
task.

It might work fine w/o your DMA changes because w/o them another code
path in the driver code is taken because the DMA operations failed
early.

Regards
Josef




More information about the users mailing list