OSDN Git Service

IB/uverbs: Delete type and id from uverbs_obj_attr
authorJason Gunthorpe <jgg@mellanox.com>
Wed, 20 Jun 2018 21:47:11 +0000 (15:47 -0600)
committerJason Gunthorpe <jgg@mellanox.com>
Fri, 22 Jun 2018 15:02:59 +0000 (09:02 -0600)
In this context the uobject is not allowed to be NULL, so type is the same
as uobject->type, and at least for IDR, id is the same as uobject->id.

FD objects should never handle the FD number outside the uAPI boundary
code.

Suggested-by: Guy Levi <guyle@mellanox.com>
Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
drivers/infiniband/core/uverbs_ioctl.c
include/rdma/uverbs_ioctl.h

index 20be683..03065ba 100644 (file)
@@ -152,14 +152,12 @@ static int uverbs_process_attr(struct ib_device *ibdev,
                object = uverbs_get_object(ibdev, spec->obj.obj_type);
                if (!object)
                        return -EINVAL;
-               o_attr->type = object->type_attrs;
 
-               o_attr->id = (int)uattr->data;
                o_attr->uobject = uverbs_get_uobject_from_context(
-                                       o_attr->type,
+                                       object->type_attrs,
                                        ucontext,
                                        spec->obj.access,
-                                       o_attr->id);
+                                       (int)uattr->data);
 
                if (IS_ERR(o_attr->uobject))
                        return PTR_ERR(o_attr->uobject);
index 970357d..90a4947 100644 (file)
@@ -344,11 +344,7 @@ struct uverbs_ptr_attr {
 };
 
 struct uverbs_obj_attr {
-       /* pointer to the kernel descriptor -> type, access, etc */
-       const struct uverbs_obj_type    *type;
        struct ib_uobject               *uobject;
-       /* fd or id in idr of this object */
-       int                             id;
 };
 
 struct uverbs_attr {