Alan Stern wrote:
Hmm, I applied the changes and I did not see a place where *prev differs from td->td_hash. I have run memtest86+ on this box and it has passed 16 times, so I do not suspect a hardware memory error. What do you think? Attached is the latest dmesg output.In other words, I'm guessing that you're suffering from hardware memory errors. A possible way to test this is to modify the patch. In td_free() where it adds the line: + ohci_dbg(hc, "(%d %d) %p -> %p\n", hash, n, prev, *prev); instead add this code: + barrier(); + ohci_dbg(hc, "(%d %d) %p -> %p [%p]\n", hash, n, + prev, *prev, td->td_hash); If we find that the value of *prev differs from the value oftd->td_hash then we'll know for certain. (Or maybe the presence of the barrier() will cause the object code to change in a way that prevents the error from occurring.)Alan Stern
Sean
Attachment:
dmesg3.log.tar.gz
Description: Unix tar archive