]> git.proxmox.com Git - mirror_ubuntu-eoan-kernel.git/commitdiff
IB/uverbs: Fix uverbs_attr_get_obj
authorJason Gunthorpe <jgg@mellanox.com>
Tue, 22 May 2018 21:56:51 +0000 (15:56 -0600)
committerJason Gunthorpe <jgg@mellanox.com>
Wed, 23 May 2018 21:25:53 +0000 (15:25 -0600)
The err pointer comes from uverbs_attr_get, not from the uobject member,
which does not store an ERR_PTR.

Fixes: be934cca9e98 ("IB/uverbs: Add device memory registration ioctl support")
Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
Reviewed-by: Leon Romanovsky <leonro@mellanox.com>
include/rdma/uverbs_ioctl.h

index 4a4201d997a73c9c769b23b8c34d225c828ab786..095383a4bd1a6f560944b65266eacbc118df09f4 100644 (file)
@@ -411,13 +411,13 @@ static inline int uverbs_attr_get_enum_id(const struct uverbs_attr_bundle *attrs
 static inline void *uverbs_attr_get_obj(const struct uverbs_attr_bundle *attrs_bundle,
                                        u16 idx)
 {
-       struct ib_uobject *uobj =
-               uverbs_attr_get(attrs_bundle, idx)->obj_attr.uobject;
+       const struct uverbs_attr *attr;
 
-       if (IS_ERR(uobj))
-               return uobj;
+       attr = uverbs_attr_get(attrs_bundle, idx);
+       if (IS_ERR(attr))
+               return ERR_CAST(attr);
 
-       return uobj->object;
+       return attr->obj_attr.uobject->object;
 }
 
 static inline int uverbs_copy_to(const struct uverbs_attr_bundle *attrs_bundle,