I have experienced this bug on a non Ubuntu system for some time. I spent some time comparing the SparkLAN DPO driver source with the main line kernel driver source and tried a couple of changes.
1) There were some places missing a lock (this change did not affect this bug, however). 2) The DPO driver performed the 32-bit register writes as two 16-bit single write commands instead of one four byte multi-write command. I suspected that this might lead to race conditions setting the registers (not atomic) which was causing the Wi-Fi chip to hang. I thought it possible that the Wi-Fi chip firmware might buffer the two 16-bit single writes and then perform a single 32-bit write to the register, thus making it atomic. I asked SparkLAN about this, but received no reply. Note that the DPO driver performs the 32-bit register reads as a single four byte multi-read, just like the main line kernel driver does. I tested the following patch and the problem went away, either because it fixes the issue or it changes the timing to cover it up. Perhaps a distinction without a difference. ** Attachment added: "rt2x00usb.pat" https://bugs.launchpad.net/ubuntu/+source/linux/+bug/362875/+attachment/4957754/+files/rt2x00usb.pat -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/362875 Title: rt2x00usb_vendor_request: Error - Vendor Request 0x07 failed for offset To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/362875/+subscriptions -- ubuntu-bugs mailing list [email protected] https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
