So after a bit of irc chatting with Maarten this seems to be more involved. The above check is to cache the dma mapping, but the implementation is bogus in tons of ways:
- If direction changes we don't bother with unmaping and freeing the
mapping, but simply leak it.
- This will break if the dma mapping needs explicit syncing since the
helpers don't call sync_to_cpu/sync_to_device anywhere.
Right, and I believe I signed up for that.
So I think I'll decline to poke around more in this hornet nest and leave it at the locking removal.
.. and I get the hornet nest :-). Is there a IRC log of what you guys talked about so I don't omit certain pieces of code.