Message ID | 14063C7AD467DE4B82DEDB5C278E8663B38EE87B@FMSMSX108.amr.corp.intel.com (mailing list archive) |
---|---|
State | Changes Requested |
Headers | show |
On Tue, May 29, 2018 at 08:49:58PM +0000, Ruhl, Michael J wrote: > >From: Jason Gunthorpe [mailto:jgg@mellanox.com] > >Sent: Tuesday, May 29, 2018 4:21 PM > >To: Ruhl, Michael J <michael.j.ruhl@intel.com> > >Cc: Leon Romanovsky <leon@kernel.org>; Doug Ledford > ><dledford@redhat.com>; Leon Romanovsky <leonro@mellanox.com>; RDMA > >mailing list <linux-rdma@vger.kernel.org>; Boris Pismenny > ><borisp@mellanox.com>; Matan Barak <matanb@mellanox.com>; Raed > >Salem <raeds@mellanox.com>; Yishai Hadas <yishaih@mellanox.com>; Saeed > >Mahameed <saeedm@mellanox.com>; linux-netdev > ><netdev@vger.kernel.org> > >Subject: Re: [PATCH rdma-next v2 01/13] IB/uverbs: Add an ib_uobject getter > >to ioctl() infrastructure > > > >On Tue, May 29, 2018 at 07:31:22PM +0000, Ruhl, Michael J wrote: > >> >- struct ib_uverbs_destroy_cq_resp resp; > >> > struct ib_uobject *uobj = > >> >- uverbs_attr_get(attrs, > >> >UVERBS_ATTR_DESTROY_CQ_HANDLE)->obj_attr.uobject; > >> >- struct ib_ucq_object *obj = container_of(uobj, struct ib_ucq_object, > >> >- uobject); > >> >+ uverbs_attr_get_uobject(attrs, > >> >UVERBS_ATTR_DESTROY_CQ_HANDLE); > >> >+ struct ib_uverbs_destroy_cq_resp resp; > >> >+ struct ib_ucq_object *obj; > >> > int ret; > >> > > >> >+ if (IS_ERR(uobj)) > >> >+ return PTR_ERR(uobj); > >> >+ > >> > >> I remember a conversation that if an method attribute was mandatory, that > >you did not need to > >> test the uobj for error (since it was checked in the infrastructure). > > > >Yes. > > > >> Is this error check necessary? > > > >No > > > >But there is no way to check one way or the other at compile time > >right now, and omitting the check makes smatch mad. > > Is smatch going to get mad at (same patch): Yes, this is where it already got mad, IIRC :( Fixing this whole thing is a todo on my list.. Jason -- To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/drivers/infiniband/core/uverbs_std_types_flow_action.c b/drivers/infiniband/core/uverbs_std_types_flow_action.c index b4f016dfa23d..a7be51cf2e42 100644 --- a/drivers/infiniband/core/uverbs_std_types_flow_action.c +++ b/drivers/infiniband/core/uverbs_std_types_flow_action.c @@ -320,7 +320,7 @@ static int UVERBS_HANDLER(UVERBS_METHOD_FLOW_ACTION_ESP_CREATE)(struct ib_device return ret; /* No need to check as this attribute is marked as MANDATORY */ - uobj = uverbs_attr_get(attrs, UVERBS_ATTR_FLOW_ACTION_ESP_HANDLE)->obj_attr.uobject; + uobj = uverbs_attr_get_uobject(attrs, UVERBS_ATTR_FLOW_ACTION_ESP_HANDLE); action = ib_dev->create_flow_action_esp(ib_dev, &esp_attr.hdr, attrs); if (IS_ERR(action)) return PTR_ERR(action); @@ -350,7 +350,7 @@ static int UVERBS_HANDLER(UVERBS_METHOD_FLOW_ACTION_ESP_MODIFY)(struct ib_device if (ret) return ret; - uobj = uverbs_attr_get(attrs, UVERBS_ATTR_FLOW_ACTION_ESP_HANDLE)->obj_attr.uobject; + uobj = uverbs_attr_get_uobject(attrs, UVERBS_ATTR_FLOW_ACTION_ESP_HANDLE); action = uobj->object; ?