<p dir="ltr">On Jul 31, 2016 10:40 AM, "ac via talk" <<a href="mailto:talk@gtalug.org">talk@gtalug.org</a>> wrote:<br>
><br>
> On Sun, 31 Jul 2016 16:30:37 +0200<br>
> ac via talk <<a href="mailto:talk@gtalug.org">talk@gtalug.org</a>> wrote:<br>
> > On Sun, 31 Jul 2016 10:01:01 -0400 (EDT)<br>
> > "D. Hugh Redelmeier via talk" <<a href="mailto:talk@gtalug.org">talk@gtalug.org</a>> wrote:<br>
> > > BTW, this link is to discussion of a problem that I'm having.  My<br>
> > > Fujitsu Scansnap ix500 won't work when plugged into a USB 3 port on<br>
> > > Linux.  Very odd.  This report is two years old and the problem<br>
> > > persists. ---<br>
> ><br>
> > eeek, soz, I only just saw this..<br>
> ><br>
> > please post any output from dmesg (directly after plugging usb)?<br>
> ><br>
><br>
> whahaha, triple eeek... (- Sundays... go figure) just reading the way<br>
> back when link and your logs<br>
> (<a href="http://spark.crystalorb.net/mikem/dmesg.log">http://spark.crystalorb.net/mikem/dmesg.log</a>)</p>
<p dir="ltr">I see this.</p>
<p dir="ltr">[ 426.246318] xhci_hcd 0000:00:14.0: Can't reset device (slot ID 4) in default state [ 426.246322] xhci_hcd 0000:00:14.0: Not freeing device rings</p>
<p dir="ltr">Not sure if this helps? Does the device work on USB 2. Apparently there are some issues with xhci memory leaks.</p>
<p dir="ltr"><a href="http://linux-usb.vger.kernel.narkive.com/SiQeYEDB/patch-1-2-xhci-fix-memory-leak-in-ring-cache-deallocation">http://linux-usb.vger.kernel.narkive.com/SiQeYEDB/patch-1-2-xhci-fix-memory-leak-in-ring-cache-deallocation</a></p>
<p dir="ltr">Here's a snippet from that thread.</p>
<p dir="ltr">Unfortunately, the original code in xhci_free_or_cache_endpoint_ring()<br>
would put the first entry into the ring cache in array index 1, instead of<br>
array index 0. This was caused by the second assignment to rings_cached:</p>
<p dir="ltr">rings_cached = virt_dev >num_rings_cached;<br>
if (rings_cached < XHCI_MAX_RINGS_CACHED) {<br>
virt_dev->num_rings_cached++;<br>
rings_cached = virt_dev->num_rings_cached;<br>
virt_dev->ring_cache[rings_cached] =<br>
virt_dev->eps[ep_index].ring;</p>
<p dir="ltr">This meant that when the device was freed, cached rings with indexes 0 to<br>
N would be freed, and the last cached ring in index N+1 would not be<br>
freed. When the driver was unloaded, this caused interesting messages<br>
like:</p>
<p dir="ltr">xhci_hcd 0000:06:00.0: dma_pool_destroy xHCI ring segments, ffff880063040000 busy</p>
<p dir="ltr">><br>
> I do not yet have anything easy/constructive to add and I promise to<br>
> only reply if I do :)<br>
><br>
> Andre<br>
> ---<br>
> Talk Mailing List<br>
> <a href="mailto:talk@gtalug.org">talk@gtalug.org</a><br>
> <a href="https://gtalug.org/mailman/listinfo/talk">https://gtalug.org/mailman/listinfo/talk</a></p>
<p dir="ltr">Russell<br>
Sent from mobile.</p>