Re: [PATCH] RDMA/core: Fix a violation of the C standard

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, 2018-07-03 at 14:49 -0600, Jason Gunthorpe wrote:
> 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?

No, this is not urgent to fix. I can keep this patch in my local tree until your
work is ready to go upstream. This is something I came across while analyzing the
sparse output for the RDMA code.

Bart.



��.n��������+%������w��{.n�����{���fk��ܨ}���Ơz�j:+v�����w����ޙ��&�)ߡ�a����z�ޗ���ݢj��w�f




[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Photo]     [Yosemite News]     [Yosemite Photos]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux