On Mon, Apr 12, 2010 at 07:22:33PM +0200, Andi Kleen wrote:
On Mon, Apr 12, 2010 at 07:15:07PM +0200, Daniel Mack wrote:
Given that - at least for non-64-aware host controllers - we want memory <4GB anyway for USB transfers to avoid DMA bouncing buffers, maybe we should just do that and fix the problem at this level? I already started to implement usb_[mz]alloc() and use it in some USB drivers.
If the area is not mapped correctly it will fail in other situations, e.g. with an IOMMU active or in virtualized setups. So the bug has to be eventually tracked down.
Ok, agreed. But we all agree to the fact that we need an interface for such allocations to avoid bounce buffers? If that is the case, we could already start to implement that while we're tracking down the actual bug.
[...]
Can anyone explain which is the right way to go?
The right thing would be to define a proper interface for it.
I had an attempt for it a couple of years ago with the mask allocator, but it didn't make it into the tree.
Any plans to continue on this? Or can you dig it out again so others can pick up the idea?
Daniel