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

Reply via email to