> > On 05/02/2015 04:54, Weiny, Ira wrote: > >> > >> On Thu, Jan 29, 2015 at 09:50:38PM +0100, Yann Droneaud wrote: > >> > >>> Anyway, I recognize that uverb way of abusing write() syscall is > >>> borderline (at best) regarding other Linux subsystems and Unix > >>> paradigm in general. But it's not enough to screw it more. > >> > >> Then we must return the correct output size explicitly in the struct. > > > > I was thinking this very same thing as I read through this thread. > > > > I too would like to avoid the use of comp_masks if at all possible. The query > call seems to be a verb where the structure size is all you really need to know > the set of values returned. > > > > As Jason says, other calls may require the comp_mask where 0 is not > sufficient to indicate "missing". > > Would it be okay to return it in the ib_uverbs_cmd_hdr.out_words? That would > further abuse the write() syscall by writing to the input buffer. I don't think that is such a great idea. > However, the only other alternative I see is to add it explicitly to every uverb > response struct. > I think this is the best solution. There is a 32 bit reserved field in ib_uverbs_ex_query_device_resp. Could we use all or part of that to be the size? For other extended commands I'm not sure what to do. Ira -- To unsubscribe from this list: send the line "unsubscribe linux-api" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html