On Tue, Mar 28, 2023 at 1:38 PM Al Viro <viro@xxxxxxxxxxxxxxxxxx> wrote: > > ... and all that, er, cleverness - for the sake of a single piece of shit > driver for piece of shit hardware *and* equally beautiful ABI. Now, I wish we didn't have any of those 'walk the iov{} array', but sadly we do, and it's not just a single case. It's also that pcm_native.c case, it's the qib rdma driver. So if we didn't have people walking the iov[] array, I'd hate to add this. But considering that we *do* have people walking the iov[] array, I'd rather unify the two user-mode cases than have them do the whole "do two different things for the ITER_UBUF vs ITER_IOV case". > Is it really worth bothering with? And if anyone has doubts about the > inturdprize kwality of the ABI in question, I suggest taking a look at > hfi1_user_sdma_process_request() - that's where the horrors are. Yes. I started out my email to Jens by suggesting that instead of passing down the iov[] pointer, he should just pass down the iter instead. And then I looked at that code and went "yeah, no way do I want to touch it". Which then got me to that "could we at least *unify* these two cases". Linus