On 29/01/2015 20:28, Jason Gunthorpe wrote: > On Thu, Jan 29, 2015 at 06:59:58PM +0100, Yann Droneaud wrote: >> > - resp.odp_caps.general_caps = attr.odp_caps.general_caps; >> > - resp.odp_caps.per_transport_caps.rc_odp_caps = >> > - attr.odp_caps.per_transport_caps.rc_odp_caps; >> > - resp.odp_caps.per_transport_caps.uc_odp_caps = >> > - attr.odp_caps.per_transport_caps.uc_odp_caps; >> > - resp.odp_caps.per_transport_caps.ud_odp_caps = >> > - attr.odp_caps.per_transport_caps.ud_odp_caps; >> > - resp.comp_mask |= IB_USER_VERBS_EX_QUERY_DEVICE_ODP; >> > - } >> > + resp.odp_caps.general_caps = attr.odp_caps.general_caps; >> > + resp.odp_caps.per_transport_caps.rc_odp_caps = >> > + attr.odp_caps.per_transport_caps.rc_odp_caps; >> > + resp.odp_caps.per_transport_caps.uc_odp_caps = >> > + attr.odp_caps.per_transport_caps.uc_odp_caps; >> > + resp.odp_caps.per_transport_caps.ud_odp_caps = >> > + attr.odp_caps.per_transport_caps.ud_odp_caps; >> > #endif >> > + resp.comp_mask |= IB_USER_VERBS_EX_QUERY_DEVICE_ODP; > Not sure about this - if 0 is a valid null answer for all the _caps > then it is fine, and the comp_mask bit should just be removed as the > size alone should be enough. Zero is indeed a valid answer. There the IB_ODP_SUPPORT bit in the general_caps field that says whether or not ODP is supported in general. The per transport capabilities are also default to not supported. However, I think we should keep the comp_mask field for future extensions. The current code doesn't report the size of the response to user space, and in addition, comp_mask being a bit mask has the advantage of allowing only part of the structure to be marked valid. Regards, 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