problem with libertas driver, Marvell W8686, and PXA270 on 2.6.27-rc7

Jeff Sutherland jeffs at fomsystems.com
Thu Oct 2 10:17:30 EDT 2008


I'm seeking some insight into the structure of the command flow when 
communicating with a Murata wifi module using the W8686 chip connected via 
SDIO on a PXA270-based system.  On about 2 out of 3 boot ups, and 
occasionally when configuring the network interface by hand after the system 
is up and running, the kernel will oops from the BUG() instruction at line 
147 of drivers/net/wireless/libertas/if_sdio.c.  When this happens, the value 
of priv->resp_len[resp_idx] is always sitting at 142.  It's almost as if the 
command processing in drivers/net/wireless/libertas/main.c is missing a 
command somehow.  Curiously, this only seems to happen when the interface is 
configured to use WEP or WPA security.  I haven't seen the problem occur when 
trying to configure an interface associated with an open A/P.  Also I note 
from my a/p's web page that the module does in fact associate fine every 
time, as key loading and other configuration occurs early on, and the a/p is 
currently using WEP plus mac filtering.  It's just things go belly up when 
the startup scripts try to bring up the interface.  This happens regardless 
of the firmware version used.  I've tried v7, v8, and v9 firmware with 
several different kernels from 2.6.25 through to the latest dev stuff from 
John Linville's wireless-testing git repo.

There are some issues with the pxa mmc controller hardware as we are painfully 
aware of, but note that once the interface is successfully configured the 
network stays up solidly, there don't appear to be any problems once it is 
configured.  From looking at the code, I suspect a race condition somewhere 
in the SDIO layer that's causing things to get out of sequence when it comes 
time to configure the network interface.  A printk placed in certain places 
causes the driver to fail 100% of the time at that same point in the code 
with the same value of response length, so something must be on the hairy 
edge someplace when it does work.

Regards,
-Jeff
-- 
FOM Systems Inc.   www.fomsystems.com




More information about the libertas-dev mailing list