Hi,
CONFIG_DEBUG_STACKOVERFLOW is enabled, but doesn't give any information. I even increased STACK_WARN to see if it's just on the edge...
Basically all debug options are enabled, but none produces any useful output...
OK -- that helps narrow things down, good.
In addition I was playing a little bit more and got more useful information.
First, CONFIG_PREEMPT should be enabled, because without, the oops seems to be reported at the wrong position!! (no idea why ...)
Wrong, or just different? Preempt could matter just because it changes the timing, which can matter a lot on SMP.
Try this: move the spin_unlock(&urb->lock) so it's AFTER the call to list_del(). There's actually a subtle assumption there, on SMP systems I think it could cause the double-delete problem you showed.
Also try bypassing preempt by using _raw_spin_*lock(&urb->lock), and see if that matters. My guess: if you moved the unlock, nothing will change
- Dave
The right position is:
list_del (&qtd->qtd_list);
...
Apr 19 15:28:52 kernel: double list_del 100100 200200 200200
Apr 19 15:28:52 kernel: ehci_hcd 0000:01:06.2: dma_pool_free ehci_qtd, f797d540/a7a7a7a7 (bad dma)
Apr 19 15:28:52 kernel: double list_del 100100 200200 200200
Apr 19 15:28:52 kernel: ehci_hcd 0000:01:06.2: dma_pool_free ehci_qtd, f797d5a0/a7a7a7a7 (bad dma)
------------------------------------------------------- This SF.Net email is sponsored by: IBM Linux Tutorials Free Linux tutorial presented by Daniel Robbins, President and CEO of GenToo technologies. Learn everything from fundamentals to system administration.http://ads.osdn.com/?ad_id=1470&alloc_id=3638&op=click _______________________________________________ [EMAIL PROTECTED] To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel