On 07/02/2015 02:52, Weiny, Ira wrote: >> >> 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". >> ... > >> 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? Yes, I think 32-bit for the response length are more than enough. I will send patches for 3.20 to re-introduce ib_uverbs_ex_query_device with the response size instead of the reserved field, and with Yann's changes. Thanks, Haggai -- 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