On Fri, Apr 09, 2010 at 03:34:06PM -0400, Alan Stern wrote:
On Fri, 9 Apr 2010, Pedro Ribeiro wrote:
The DMA pointers do indeed look sane. I wanted to take a deeper look at this and set up a 64bit system today. However, I fail to see the problem here. Pedro, how much RAM does your machine have installed?
It has 4 GB.
That means DMA mapping cannot be the cause of the problem. :-(
FWIW, as I stated in the first message of this thread, I had very similar bug reports for a Mac OS X driver I'm maintaining, and the solution that fixed everything was to force memory that has a _physical_ buffer address mask of 0x00000000ffffffff. And all machines I've seen the bug on had 4GB of RAM or less. So appearantly, without that force option, memory beyond the 4GB range was provided.
But I can't tell whether this effect also counts for Linux, and I must admit I lack a deep enough understanding about the kernel's memory management in 64bit mode and about how the DMA bouncing and remapping logic works. Does anyone have an idea about how to explain that?
Daniel