Messages in this thread | | | Date | Mon, 14 Nov 2011 18:03:39 -0600 | From | Larry Finger <> | Subject | Re: nommu warning message |
| |
On 11/14/2011 05:42 AM, Joerg Roedel wrote: > On Fri, Nov 11, 2011 at 12:14:13PM -0600, Larry Finger wrote: >> For the driver rtl8192cu (a USB wireless device), the current >> version loads the 15KB firmware asynchronously one 32-bit quantity >> at a time. Although inefficient. this method works with USB 1.1 and >> USB 2.0 adapters; however, it fails on at least one USB 3.0 adapter >> with "xhci_hcd 0000:05:00.0: ERROR no room on ep ring" errors. >> >> These errors are believed to arise from small, fixed-size ep rings. >> There is a vendor driver that works with that same hardware. The >> major difference is that it uses synchronous block writes of 254 >> bytes. When I tried this with the in-kernel driver, each block write >> yields a warning as shown below: >> >> nommu_map_single: overflow 41000340d020+254 of device mask ffffffff > > Strange. This means that your system uses the nommu DMA driver. But for > your hardware the GART or SWIOTLB should be used. > > Even more strange is the address used for the device. I don't believe is > is correct, otherwise your Laptop would have a very huge amount of RAM > :) > > The I think there are two issues here: Why is your system using nommu > and not GART? Can you check that GART and SWIOTLB are enabled in your > kernel config? Second, why is your system using the wrong address? This > looks like some kind of driver bug to mee.
My system has 3 GB of RAM installed, and it has both GART and SWIOTLB enabled.
Your comment about the strange address made me wonder if my driver was somehow overrunning a buffer. Keeping the buffer size constant while reducing the maximum block size by 10 bytes cleared the problem. Obviously, I there is some buffer overhead that I had not considered.
Thanks for pointing me in the right direction.
Larry
| |