On Thu, 2010-03-25 at 09:20 -0700, Golden wrote: > Recent compat-wireless releases break firmware loading under slightly > older kernels. The bug occurs as tested by me with 2.6.27 and 2.6.30, > it does not appear on kernels 2.6.31 and up. ... > b43 ssb0:0: firmware: requesting b43-open/ucode5.fw > compat_firmware ssb0:0: firmware_loading_store: unexpected value (0) I was able to reproduce "unexpected value" with Linux 2.6.28.10 and ar9170usb. After adding some debug printk's, I get this: firmware_loading_store: loading = 1 firmware_loading_store: loading = 1 firmware_loading_store: loading = 0 fw_priv->fw->data = ffffc2001027a000 firmware_loading_store: loading = 0 compat_firmware 1-7: firmware_loading_store: unexpected value (0) firmware_loading_store: abort usb 1-7: ar9170.fw firmware file not found, trying old firmware... It looks like we have a race condition here. Two processes try to load the firmware. I remember vaguely that it was discussed before. Google search for "firmware_loading_store race" finds some interesting links, but I cannot find a fix. Likewise, search for "firmware_loading_store: unexpected value" finds a lot of stuff in the Linux 2.6.13 timeframe. It looks like a race condition. Adding dump_stack() to the beginning of firmware_loading_store() makes the problem disappear. -- Regards, Pavel Roskin -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html