On 03/05/2017 09:48 PM, Xiubo Li wrote:
Maybe fix this by exiting aasda() with iov pointing at the next unused
iov in the array?
May it shouldn't be the aasda()'s duty to increment the iov ptr.
Sure, your call.
[snip text where we agree current solution allows data block sharing,
and new approach does not, and we're both ok with that]
Option B is we go with changing the implementation to always use a
separate data block for BIDI data (BIDI cmds are rare so no big deal),
but then also please look into simplifying code in aasda() and
tcmu_queue_cmd_ring that may now be overly complex.
Yes, there still has other bugs like this one, i will try to simplify
the code then.
Great :)
For the BIDI data, still hasn't been used by the tcmu-runner. Is any
other consumer using this?
Well with kernel APIs you just never know if somebody's using it but
just not saying anything. But given this bug, how could they?
Regards -- Andy