On 29/01/2015 19:59, Yann Droneaud wrote: > This patch ensures the extended QUERY_DEVICE uverbs request's > comp_mask has only known and supported bits (currently none). > > If userspace set unknown features bits, -EINVAL will be returned, > ensuring current programs are not allowed to set random feature > bits: such bits could enable new extended features in future kernel > versions and those features can trigger a behavior not unsupported > by the older programs or make the newer kernels return an error > for a request which was valid on older kernels. > > Additionally, returning an error for unsupported feature would > allow userspace to probe/discover which extended features are > currently supported by a kernel. As I wrote before, I hope in the future we don't force userspace to probe features this way, because it may be unnecessarily complex. I agree though that we should have a way to extend this verb in the future. Reviewed-by: Haggai Eran <haggaie@xxxxxxxxxxxx> > > Link: http://mid.gmane.org/cover.1422553023.git.ydroneaud@xxxxxxxxxx > Cc: Sagi Grimberg <sagig@xxxxxxxxxxxx> > Cc: Shachar Raindel <raindel@xxxxxxxxxxxx> > Cc: Eli Cohen <eli@xxxxxxxxxxxx> > Cc: Haggai Eran <haggaie@xxxxxxxxxxxx> > Signed-off-by: Yann Droneaud <ydroneaud@xxxxxxxxxx> > --- > drivers/infiniband/core/uverbs_cmd.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/drivers/infiniband/core/uverbs_cmd.c b/drivers/infiniband/core/uverbs_cmd.c > index 6ef06a9b4362..fbcc54b86795 100644 > --- a/drivers/infiniband/core/uverbs_cmd.c > +++ b/drivers/infiniband/core/uverbs_cmd.c > @@ -3312,6 +3312,9 @@ int ib_uverbs_ex_query_device(struct ib_uverbs_file *file, > if (err) > return err; > > + if (cmd.comp_mask) > + return -EINVAL; > + > if (cmd.reserved) > return -EINVAL; > > -- 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