On Mon, Jul 02, 2018 at 10:28:22AM -0700, Bart Van Assche wrote: > This patch avoids that sparse reports the following: > > drivers/infiniband/core/uverbs_std_types_cq.c:206:1: error: directive in argument list > drivers/infiniband/core/uverbs_std_types_cq.c:209:1: error: directive in argument list Huh. Yes, that should be fixed.. > Additionally, this patch also avoids that sparse warns about defined > but not used functions with CONFIG_INFINIBAND_EXP_LEGACY_VERBS_NEW_UAPI=n. But I don't think this should be.. With kconfig We want to compile as much code as possible and have the compiler eliminate it - so we get stable compilation coverage.. > Fixes: 185899ee8d00 ("IB/uverbs: Enable ioctl() uAPI by default for new verbs") > Signed-off-by: Bart Van Assche <bart.vanassche@xxxxxxx> > Cc: Matan Barak <matanb@xxxxxxxxxxxx> > Cc: Leon Romanovsky <leonro@xxxxxxxxxxxx> > drivers/infiniband/core/uverbs_std_types_cq.c | 12 +++++++++--- > 1 file changed, 9 insertions(+), 3 deletions(-) > > diff --git a/drivers/infiniband/core/uverbs_std_types_cq.c b/drivers/infiniband/core/uverbs_std_types_cq.c > index 3d293d01afea..3fc1838d6cb1 100644 > +++ b/drivers/infiniband/core/uverbs_std_types_cq.c > @@ -53,6 +53,7 @@ static int uverbs_free_cq(struct ib_uobject *uobject, > return ret; > } > > +#if IS_ENABLED(CONFIG_INFINIBAND_EXP_LEGACY_VERBS_NEW_UAPI) > static int UVERBS_HANDLER(UVERBS_METHOD_CQ_CREATE)(struct ib_device *ib_dev, > struct ib_uverbs_file *file, > struct uverbs_attr_bundle *attrs) > @@ -199,13 +200,18 @@ static DECLARE_UVERBS_NAMED_METHOD(UVERBS_METHOD_CQ_DESTROY, > &UVERBS_ATTR_PTR_OUT(UVERBS_ATTR_DESTROY_CQ_RESP, > UVERBS_ATTR_TYPE(struct ib_uverbs_destroy_cq_resp), > UA_FLAGS(UVERBS_ATTR_SPEC_F_MANDATORY))); > +#endif > > +#if IS_ENABLED(CONFIG_INFINIBAND_EXP_LEGACY_VERBS_NEW_UAPI) > DECLARE_UVERBS_NAMED_OBJECT(UVERBS_OBJECT_CQ, > &UVERBS_TYPE_ALLOC_IDR_SZ(sizeof(struct ib_ucq_object), 0, > uverbs_free_cq), > -#if IS_ENABLED(CONFIG_INFINIBAND_EXP_LEGACY_VERBS_NEW_UAPI) > &UVERBS_METHOD(UVERBS_METHOD_CQ_CREATE), > &UVERBS_METHOD(UVERBS_METHOD_CQ_DESTROY) > -#endif > ); > - > +#else > +DECLARE_UVERBS_NAMED_OBJECT(UVERBS_OBJECT_CQ, > + &UVERBS_TYPE_ALLOC_IDR_SZ(sizeof(struct ib_ucq_object), 0, > + uverbs_free_cq), > + ); > +#endif Humm. I have a series that reworks these macros some more and eliminates the need for DECLARE_UVERBS_NAMED_OBJECT and handles CONFIG_INFINIBAND_EXP_LEGACY_VERBS_NEW_UAPI automatically. However maybe that is still a bit far off.. Do you think this is urgent to fix? Jason -- To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html