#define ib_uverbs_lookup_comp_file(_fd, _ufile)                                \
        _ib_uverbs_lookup_comp_file((_fd)*typecheck(s32, _fd), _ufile)
 
-static ssize_t ib_uverbs_get_context(struct uverbs_attr_bundle *attrs,
-                                    const char __user *buf, int in_len,
-                                    int out_len)
+static int ib_uverbs_get_context(struct uverbs_attr_bundle *attrs,
+                                const char __user *buf, int in_len,
+                                int out_len)
 {
        struct ib_uverbs_file *file = attrs->ufile;
        struct ib_uverbs_get_context      cmd;
 
        mutex_unlock(&file->ucontext_lock);
 
-       return in_len;
+       return 0;
 
 err_file:
        ib_uverbs_free_async_event_file(file);
        resp->phys_port_cnt             = ib_dev->phys_port_cnt;
 }
 
-static ssize_t ib_uverbs_query_device(struct uverbs_attr_bundle *attrs,
-                                     const char __user *buf, int in_len,
-                                     int out_len)
+static int ib_uverbs_query_device(struct uverbs_attr_bundle *attrs,
+                                 const char __user *buf, int in_len,
+                                 int out_len)
 {
        struct ib_uverbs_query_device      cmd;
        struct ib_uverbs_query_device_resp resp;
        if (copy_to_user(u64_to_user_ptr(cmd.response), &resp, sizeof resp))
                return -EFAULT;
 
-       return in_len;
+       return 0;
 }
 
 /*
        return res;
 }
 
-static ssize_t ib_uverbs_query_port(struct uverbs_attr_bundle *attrs,
-                                   const char __user *buf, int in_len,
-                                   int out_len)
+static int ib_uverbs_query_port(struct uverbs_attr_bundle *attrs,
+                               const char __user *buf, int in_len, int out_len)
 {
        struct ib_uverbs_query_port      cmd;
        struct ib_uverbs_query_port_resp resp;
        if (copy_to_user(u64_to_user_ptr(cmd.response), &resp, sizeof resp))
                return -EFAULT;
 
-       return in_len;
+       return 0;
 }
 
-static ssize_t ib_uverbs_alloc_pd(struct uverbs_attr_bundle *attrs,
-                                 const char __user *buf, int in_len,
-                                 int out_len)
+static int ib_uverbs_alloc_pd(struct uverbs_attr_bundle *attrs,
+                             const char __user *buf, int in_len, int out_len)
 {
        struct ib_uverbs_alloc_pd      cmd;
        struct ib_uverbs_alloc_pd_resp resp;
                goto err_copy;
        }
 
-       return uobj_alloc_commit(uobj, in_len);
+       return uobj_alloc_commit(uobj);
 
 err_copy:
        ib_dealloc_pd(pd);
        return ret;
 }
 
-static ssize_t ib_uverbs_dealloc_pd(struct uverbs_attr_bundle *attrs,
-                                   const char __user *buf, int in_len,
-                                   int out_len)
+static int ib_uverbs_dealloc_pd(struct uverbs_attr_bundle *attrs,
+                               const char __user *buf, int in_len, int out_len)
 {
        struct ib_uverbs_dealloc_pd cmd;
 
        if (copy_from_user(&cmd, buf, sizeof cmd))
                return -EFAULT;
 
-       return uobj_perform_destroy(UVERBS_OBJECT_PD, cmd.pd_handle, attrs,
-                                   in_len);
+       return uobj_perform_destroy(UVERBS_OBJECT_PD, cmd.pd_handle, attrs);
 }
 
 struct xrcd_table_entry {
        }
 }
 
-static ssize_t ib_uverbs_open_xrcd(struct uverbs_attr_bundle *attrs,
-                                  const char __user *buf, int in_len,
-                                  int out_len)
+static int ib_uverbs_open_xrcd(struct uverbs_attr_bundle *attrs,
+                              const char __user *buf, int in_len, int out_len)
 {
        struct ib_uverbs_device *ibudev = attrs->ufile->device;
        struct ib_uverbs_open_xrcd      cmd;
 
        mutex_unlock(&ibudev->xrcd_tree_mutex);
 
-       return uobj_alloc_commit(&obj->uobject, in_len);
+       return uobj_alloc_commit(&obj->uobject);
 
 err_copy:
        if (inode) {
        return ret;
 }
 
-static ssize_t ib_uverbs_close_xrcd(struct uverbs_attr_bundle *attrs,
-                                   const char __user *buf, int in_len,
-                                   int out_len)
+static int ib_uverbs_close_xrcd(struct uverbs_attr_bundle *attrs,
+                               const char __user *buf, int in_len, int out_len)
 {
        struct ib_uverbs_close_xrcd cmd;
 
        if (copy_from_user(&cmd, buf, sizeof cmd))
                return -EFAULT;
 
-       return uobj_perform_destroy(UVERBS_OBJECT_XRCD, cmd.xrcd_handle, attrs,
-                                   in_len);
+       return uobj_perform_destroy(UVERBS_OBJECT_XRCD, cmd.xrcd_handle, attrs);
 }
 
 int ib_uverbs_dealloc_xrcd(struct ib_uobject *uobject,
        return ret;
 }
 
-static ssize_t ib_uverbs_reg_mr(struct uverbs_attr_bundle *attrs,
-                               const char __user *buf, int in_len, int out_len)
+static int ib_uverbs_reg_mr(struct uverbs_attr_bundle *attrs,
+                           const char __user *buf, int in_len, int out_len)
 {
        struct ib_uverbs_reg_mr      cmd;
        struct ib_uverbs_reg_mr_resp resp;
 
        uobj_put_obj_read(pd);
 
-       return uobj_alloc_commit(uobj, in_len);
+       return uobj_alloc_commit(uobj);
 
 err_copy:
        ib_dereg_mr(mr);
        return ret;
 }
 
-static ssize_t ib_uverbs_rereg_mr(struct uverbs_attr_bundle *attrs,
-                                 const char __user *buf, int in_len,
-                                 int out_len)
+static int ib_uverbs_rereg_mr(struct uverbs_attr_bundle *attrs,
+                             const char __user *buf, int in_len, int out_len)
 {
        struct ib_uverbs_rereg_mr      cmd;
        struct ib_uverbs_rereg_mr_resp resp;
        if (copy_to_user(u64_to_user_ptr(cmd.response), &resp, sizeof(resp)))
                ret = -EFAULT;
        else
-               ret = in_len;
+               ret = 0;
 
 put_uobj_pd:
        if (cmd.flags & IB_MR_REREG_PD)
        return ret;
 }
 
-static ssize_t ib_uverbs_dereg_mr(struct uverbs_attr_bundle *attrs,
-                                 const char __user *buf, int in_len,
-                                 int out_len)
+static int ib_uverbs_dereg_mr(struct uverbs_attr_bundle *attrs,
+                             const char __user *buf, int in_len, int out_len)
 {
        struct ib_uverbs_dereg_mr cmd;
 
        if (copy_from_user(&cmd, buf, sizeof cmd))
                return -EFAULT;
 
-       return uobj_perform_destroy(UVERBS_OBJECT_MR, cmd.mr_handle, attrs,
-                                   in_len);
+       return uobj_perform_destroy(UVERBS_OBJECT_MR, cmd.mr_handle, attrs);
 }
 
-static ssize_t ib_uverbs_alloc_mw(struct uverbs_attr_bundle *attrs,
-                                 const char __user *buf, int in_len,
-                                 int out_len)
+static int ib_uverbs_alloc_mw(struct uverbs_attr_bundle *attrs,
+                             const char __user *buf, int in_len, int out_len)
 {
        struct ib_uverbs_alloc_mw      cmd;
        struct ib_uverbs_alloc_mw_resp resp;
        }
 
        uobj_put_obj_read(pd);
-       return uobj_alloc_commit(uobj, in_len);
+       return uobj_alloc_commit(uobj);
 
 err_copy:
        uverbs_dealloc_mw(mw);
        return ret;
 }
 
-static ssize_t ib_uverbs_dealloc_mw(struct uverbs_attr_bundle *attrs,
-                                   const char __user *buf, int in_len,
-                                   int out_len)
+static int ib_uverbs_dealloc_mw(struct uverbs_attr_bundle *attrs,
+                               const char __user *buf, int in_len, int out_len)
 {
        struct ib_uverbs_dealloc_mw cmd;
 
        if (copy_from_user(&cmd, buf, sizeof(cmd)))
                return -EFAULT;
 
-       return uobj_perform_destroy(UVERBS_OBJECT_MW, cmd.mw_handle, attrs,
-                                   in_len);
+       return uobj_perform_destroy(UVERBS_OBJECT_MW, cmd.mw_handle, attrs);
 }
 
-static ssize_t ib_uverbs_create_comp_channel(struct uverbs_attr_bundle *attrs,
-                                            const char __user *buf, int in_len,
-                                            int out_len)
+static int ib_uverbs_create_comp_channel(struct uverbs_attr_bundle *attrs,
+                                        const char __user *buf, int in_len,
+                                        int out_len)
 {
        struct ib_uverbs_create_comp_channel       cmd;
        struct ib_uverbs_create_comp_channel_resp  resp;
                return -EFAULT;
        }
 
-       return uobj_alloc_commit(uobj, in_len);
+       return uobj_alloc_commit(uobj);
 }
 
 static struct ib_ucq_object *create_cq(struct uverbs_attr_bundle *attrs,
        if (ret)
                goto err_cb;
 
-       ret = uobj_alloc_commit(&obj->uobject, 0);
+       ret = uobj_alloc_commit(&obj->uobject);
        if (ret)
                return ERR_PTR(ret);
        return obj;
        return 0;
 }
 
-static ssize_t ib_uverbs_create_cq(struct uverbs_attr_bundle *attrs,
-                                  const char __user *buf, int in_len,
-                                  int out_len)
+static int ib_uverbs_create_cq(struct uverbs_attr_bundle *attrs,
+                              const char __user *buf, int in_len, int out_len)
 {
        struct ib_uverbs_create_cq      cmd;
        struct ib_uverbs_ex_create_cq   cmd_ex;
        if (IS_ERR(obj))
                return PTR_ERR(obj);
 
-       return in_len;
+       return 0;
 }
 
 static int ib_uverbs_ex_create_cq_cb(struct uverbs_attr_bundle *attrs,
        return PTR_ERR_OR_ZERO(obj);
 }
 
-static ssize_t ib_uverbs_resize_cq(struct uverbs_attr_bundle *attrs,
-                                  const char __user *buf, int in_len,
-                                  int out_len)
+static int ib_uverbs_resize_cq(struct uverbs_attr_bundle *attrs,
+                              const char __user *buf, int in_len, int out_len)
 {
        struct ib_uverbs_resize_cq      cmd;
        struct ib_uverbs_resize_cq_resp resp = {};
 out:
        uobj_put_obj_read(cq);
 
-       return ret ? ret : in_len;
+       return ret;
 }
 
 static int copy_wc_to_user(struct ib_device *ib_dev, void __user *dest,
        return 0;
 }
 
-static ssize_t ib_uverbs_poll_cq(struct uverbs_attr_bundle *attrs,
-                                const char __user *buf, int in_len,
-                                int out_len)
+static int ib_uverbs_poll_cq(struct uverbs_attr_bundle *attrs,
+                            const char __user *buf, int in_len, int out_len)
 {
        struct ib_uverbs_poll_cq       cmd;
        struct ib_uverbs_poll_cq_resp  resp;
                goto out_put;
        }
 
-       ret = in_len;
+       ret = 0;
 
 out_put:
        uobj_put_obj_read(cq);
        return ret;
 }
 
-static ssize_t ib_uverbs_req_notify_cq(struct uverbs_attr_bundle *attrs,
-                                      const char __user *buf, int in_len,
-                                      int out_len)
+static int ib_uverbs_req_notify_cq(struct uverbs_attr_bundle *attrs,
+                                  const char __user *buf, int in_len,
+                                  int out_len)
 {
        struct ib_uverbs_req_notify_cq cmd;
        struct ib_cq                  *cq;
 
        uobj_put_obj_read(cq);
 
-       return in_len;
+       return 0;
 }
 
-static ssize_t ib_uverbs_destroy_cq(struct uverbs_attr_bundle *attrs,
-                                   const char __user *buf, int in_len,
-                                   int out_len)
+static int ib_uverbs_destroy_cq(struct uverbs_attr_bundle *attrs,
+                               const char __user *buf, int in_len, int out_len)
 {
        struct ib_uverbs_destroy_cq      cmd;
        struct ib_uverbs_destroy_cq_resp resp;
        if (copy_to_user(u64_to_user_ptr(cmd.response), &resp, sizeof resp))
                return -EFAULT;
 
-       return in_len;
+       return 0;
 }
 
 static int create_qp(struct uverbs_attr_bundle *attrs,
        if (ind_tbl)
                uobj_put_obj_read(ind_tbl);
 
-       return uobj_alloc_commit(&obj->uevent.uobject, 0);
+       return uobj_alloc_commit(&obj->uevent.uobject);
 err_cb:
        ib_destroy_qp(qp);
 
        return 0;
 }
 
-static ssize_t ib_uverbs_create_qp(struct uverbs_attr_bundle *attrs,
-                                  const char __user *buf, int in_len,
-                                  int out_len)
+static int ib_uverbs_create_qp(struct uverbs_attr_bundle *attrs,
+                              const char __user *buf, int in_len, int out_len)
 {
        struct ib_uverbs_create_qp      cmd;
        struct ib_uverbs_ex_create_qp   cmd_ex;
        if (err)
                return err;
 
-       return in_len;
+       return 0;
 }
 
 static int ib_uverbs_ex_create_qp_cb(struct uverbs_attr_bundle *attrs,
        return 0;
 }
 
-static ssize_t ib_uverbs_open_qp(struct uverbs_attr_bundle *attrs,
-                                const char __user *buf, int in_len,
-                                int out_len)
+static int ib_uverbs_open_qp(struct uverbs_attr_bundle *attrs,
+                            const char __user *buf, int in_len, int out_len)
 {
        struct ib_uverbs_open_qp        cmd;
        struct ib_uverbs_create_qp_resp resp;
        qp->uobject = &obj->uevent.uobject;
        uobj_put_read(xrcd_uobj);
 
-       return uobj_alloc_commit(&obj->uevent.uobject, in_len);
+       return uobj_alloc_commit(&obj->uevent.uobject);
 
 err_destroy:
        ib_destroy_qp(qp);
        uverb_attr->port_num          = rdma_ah_get_port_num(rdma_attr);
 }
 
-static ssize_t ib_uverbs_query_qp(struct uverbs_attr_bundle *attrs,
-                                 const char __user *buf, int in_len,
-                                 int out_len)
+static int ib_uverbs_query_qp(struct uverbs_attr_bundle *attrs,
+                             const char __user *buf, int in_len, int out_len)
 {
        struct ib_uverbs_query_qp      cmd;
        struct ib_uverbs_query_qp_resp resp;
        kfree(attr);
        kfree(init_attr);
 
-       return ret ? ret : in_len;
+       return ret;
 }
 
 /* Remove ignored fields set in the attribute mask */
        return ret;
 }
 
-static ssize_t ib_uverbs_modify_qp(struct uverbs_attr_bundle *attrs,
-                                  const char __user *buf, int in_len,
-                                  int out_len)
+static int ib_uverbs_modify_qp(struct uverbs_attr_bundle *attrs,
+                              const char __user *buf, int in_len, int out_len)
 {
        struct ib_uverbs_ex_modify_qp cmd = {};
        struct ib_udata udata;
-       int ret;
 
        if (copy_from_user(&cmd.base, buf, sizeof(cmd.base)))
                return -EFAULT;
                   in_len - sizeof(cmd.base) - sizeof(struct ib_uverbs_cmd_hdr),
                   out_len);
 
-       ret = modify_qp(attrs, &cmd, &udata);
-       if (ret)
-               return ret;
-
-       return in_len;
+       return modify_qp(attrs, &cmd, &udata);
 }
 
 static int ib_uverbs_ex_modify_qp(struct uverbs_attr_bundle *attrs,
        return ret;
 }
 
-static ssize_t ib_uverbs_destroy_qp(struct uverbs_attr_bundle *attrs,
-                                   const char __user *buf, int in_len,
-                                   int out_len)
+static int ib_uverbs_destroy_qp(struct uverbs_attr_bundle *attrs,
+                               const char __user *buf, int in_len, int out_len)
 {
        struct ib_uverbs_destroy_qp      cmd;
        struct ib_uverbs_destroy_qp_resp resp;
        if (copy_to_user(u64_to_user_ptr(cmd.response), &resp, sizeof resp))
                return -EFAULT;
 
-       return in_len;
+       return 0;
 }
 
 static void *alloc_wr(size_t wr_size, __u32 num_sge)
                         num_sge * sizeof (struct ib_sge), GFP_KERNEL);
 }
 
-static ssize_t ib_uverbs_post_send(struct uverbs_attr_bundle *attrs,
-                                  const char __user *buf, int in_len,
-                                  int out_len)
+static int ib_uverbs_post_send(struct uverbs_attr_bundle *attrs,
+                              const char __user *buf, int in_len, int out_len)
 {
        struct ib_uverbs_post_send      cmd;
        struct ib_uverbs_post_send_resp resp;
 out:
        kfree(user_wr);
 
-       return ret ? ret : in_len;
+       return ret;
 }
 
 static struct ib_recv_wr *ib_uverbs_unmarshall_recv(const char __user *buf,
        return ERR_PTR(ret);
 }
 
-static ssize_t ib_uverbs_post_recv(struct uverbs_attr_bundle *attrs,
-                                  const char __user *buf, int in_len,
-                                  int out_len)
+static int ib_uverbs_post_recv(struct uverbs_attr_bundle *attrs,
+                              const char __user *buf, int in_len, int out_len)
 {
        struct ib_uverbs_post_recv      cmd;
        struct ib_uverbs_post_recv_resp resp;
                wr = next;
        }
 
-       return ret ? ret : in_len;
+       return ret;
 }
 
-static ssize_t ib_uverbs_post_srq_recv(struct uverbs_attr_bundle *attrs,
-                                      const char __user *buf, int in_len,
-                                      int out_len)
+static int ib_uverbs_post_srq_recv(struct uverbs_attr_bundle *attrs,
+                                  const char __user *buf, int in_len,
+                                  int out_len)
 {
        struct ib_uverbs_post_srq_recv      cmd;
        struct ib_uverbs_post_srq_recv_resp resp;
                wr = next;
        }
 
-       return ret ? ret : in_len;
+       return ret;
 }
 
-static ssize_t ib_uverbs_create_ah(struct uverbs_attr_bundle *attrs,
-                                  const char __user *buf, int in_len,
-                                  int out_len)
+static int ib_uverbs_create_ah(struct uverbs_attr_bundle *attrs,
+                              const char __user *buf, int in_len, int out_len)
 {
        struct ib_uverbs_create_ah       cmd;
        struct ib_uverbs_create_ah_resp  resp;
        }
 
        uobj_put_obj_read(pd);
-       return uobj_alloc_commit(uobj, in_len);
+       return uobj_alloc_commit(uobj);
 
 err_copy:
        rdma_destroy_ah(ah);
        return ret;
 }
 
-static ssize_t ib_uverbs_destroy_ah(struct uverbs_attr_bundle *attrs,
-                                   const char __user *buf, int in_len,
-                                   int out_len)
+static int ib_uverbs_destroy_ah(struct uverbs_attr_bundle *attrs,
+                               const char __user *buf, int in_len, int out_len)
 {
        struct ib_uverbs_destroy_ah cmd;
 
        if (copy_from_user(&cmd, buf, sizeof cmd))
                return -EFAULT;
 
-       return uobj_perform_destroy(UVERBS_OBJECT_AH, cmd.ah_handle, attrs,
-                                   in_len);
+       return uobj_perform_destroy(UVERBS_OBJECT_AH, cmd.ah_handle, attrs);
 }
 
-static ssize_t ib_uverbs_attach_mcast(struct uverbs_attr_bundle *attrs,
-                                     const char __user *buf, int in_len,
-                                     int out_len)
+static int ib_uverbs_attach_mcast(struct uverbs_attr_bundle *attrs,
+                                 const char __user *buf, int in_len,
+                                 int out_len)
 {
        struct ib_uverbs_attach_mcast cmd;
        struct ib_qp                 *qp;
        mutex_unlock(&obj->mcast_lock);
        uobj_put_obj_read(qp);
 
-       return ret ? ret : in_len;
+       return ret;
 }
 
-static ssize_t ib_uverbs_detach_mcast(struct uverbs_attr_bundle *attrs,
-                                     const char __user *buf, int in_len,
-                                     int out_len)
+static int ib_uverbs_detach_mcast(struct uverbs_attr_bundle *attrs,
+                                 const char __user *buf, int in_len,
+                                 int out_len)
 {
        struct ib_uverbs_detach_mcast cmd;
        struct ib_uqp_object         *obj;
 out_put:
        mutex_unlock(&obj->mcast_lock);
        uobj_put_obj_read(qp);
-       return ret ? ret : in_len;
+       return ret;
 }
 
 struct ib_uflow_resources *flow_resources_alloc(size_t num_specs)
 
        uobj_put_obj_read(pd);
        uobj_put_obj_read(cq);
-       return uobj_alloc_commit(&obj->uevent.uobject, 0);
+       return uobj_alloc_commit(&obj->uevent.uobject);
 
 err_copy:
        ib_destroy_wq(wq);
        for (j = 0; j < num_read_wqs; j++)
                uobj_put_obj_read(wqs[j]);
 
-       return uobj_alloc_commit(uobj, 0);
+       return uobj_alloc_commit(uobj);
 
 err_copy:
        ib_destroy_rwq_ind_table(rwq_ind_tbl);
                return -EOPNOTSUPP;
 
        return uobj_perform_destroy(UVERBS_OBJECT_RWQ_IND_TBL,
-                                   cmd.ind_tbl_handle, attrs, 0);
+                                   cmd.ind_tbl_handle, attrs);
 }
 
 static int ib_uverbs_ex_create_flow(struct uverbs_attr_bundle *attrs,
        kfree(flow_attr);
        if (cmd.flow_attr.num_of_specs)
                kfree(kern_flow_attr);
-       return uobj_alloc_commit(uobj, 0);
+       return uobj_alloc_commit(uobj);
 err_copy:
        if (!qp->device->destroy_flow(flow_id))
                atomic_dec(&qp->usecnt);
        if (cmd.comp_mask)
                return -EINVAL;
 
-       return uobj_perform_destroy(UVERBS_OBJECT_FLOW, cmd.flow_handle, attrs,
-                                   0);
+       return uobj_perform_destroy(UVERBS_OBJECT_FLOW, cmd.flow_handle, attrs);
 }
 
 static int __uverbs_create_xsrq(struct uverbs_attr_bundle *attrs,
                uobj_put_obj_read(attr.ext.cq);
 
        uobj_put_obj_read(pd);
-       return uobj_alloc_commit(&obj->uevent.uobject, 0);
+       return uobj_alloc_commit(&obj->uevent.uobject);
 
 err_copy:
        ib_destroy_srq(srq);
        return ret;
 }
 
-static ssize_t ib_uverbs_create_srq(struct uverbs_attr_bundle *attrs,
-                                   const char __user *buf, int in_len,
-                                   int out_len)
+static int ib_uverbs_create_srq(struct uverbs_attr_bundle *attrs,
+                               const char __user *buf, int in_len, int out_len)
 {
        struct ib_uverbs_create_srq      cmd;
        struct ib_uverbs_create_xsrq     xcmd;
        struct ib_uverbs_create_srq_resp resp;
        struct ib_udata                  udata;
-       int ret;
 
        if (out_len < sizeof resp)
                return -ENOSPC;
                   in_len - sizeof(cmd) - sizeof(struct ib_uverbs_cmd_hdr),
                   out_len - sizeof(resp));
 
-       ret = __uverbs_create_xsrq(attrs, &xcmd, &udata);
-       if (ret)
-               return ret;
-
-       return in_len;
+       return __uverbs_create_xsrq(attrs, &xcmd, &udata);
 }
 
-static ssize_t ib_uverbs_create_xsrq(struct uverbs_attr_bundle *attrs,
-                                    const char __user *buf, int in_len,
-                                    int out_len)
+static int ib_uverbs_create_xsrq(struct uverbs_attr_bundle *attrs,
+                                const char __user *buf, int in_len,
+                                int out_len)
 {
        struct ib_uverbs_create_xsrq     cmd;
        struct ib_uverbs_create_srq_resp resp;
        struct ib_udata                  udata;
-       int ret;
 
        if (out_len < sizeof resp)
                return -ENOSPC;
                   in_len - sizeof(cmd) - sizeof(struct ib_uverbs_cmd_hdr),
                   out_len - sizeof(resp));
 
-       ret = __uverbs_create_xsrq(attrs, &cmd, &udata);
-       if (ret)
-               return ret;
-
-       return in_len;
+       return __uverbs_create_xsrq(attrs, &cmd, &udata);
 }
 
-static ssize_t ib_uverbs_modify_srq(struct uverbs_attr_bundle *attrs,
-                                   const char __user *buf, int in_len,
-                                   int out_len)
+static int ib_uverbs_modify_srq(struct uverbs_attr_bundle *attrs,
+                               const char __user *buf, int in_len, int out_len)
 {
        struct ib_uverbs_modify_srq cmd;
        struct ib_udata             udata;
 
        uobj_put_obj_read(srq);
 
-       return ret ? ret : in_len;
+       return ret;
 }
 
-static ssize_t ib_uverbs_query_srq(struct uverbs_attr_bundle *attrs,
-                                  const char __user *buf, int in_len,
-                                  int out_len)
+static int ib_uverbs_query_srq(struct uverbs_attr_bundle *attrs,
+                              const char __user *buf, int in_len, int out_len)
 {
        struct ib_uverbs_query_srq      cmd;
        struct ib_uverbs_query_srq_resp resp;
        if (copy_to_user(u64_to_user_ptr(cmd.response), &resp, sizeof resp))
                return -EFAULT;
 
-       return in_len;
+       return 0;
 }
 
-static ssize_t ib_uverbs_destroy_srq(struct uverbs_attr_bundle *attrs,
-                                    const char __user *buf, int in_len,
-                                    int out_len)
+static int ib_uverbs_destroy_srq(struct uverbs_attr_bundle *attrs,
+                                const char __user *buf, int in_len,
+                                int out_len)
 {
        struct ib_uverbs_destroy_srq      cmd;
        struct ib_uverbs_destroy_srq_resp resp;
        if (copy_to_user(u64_to_user_ptr(cmd.response), &resp, sizeof(resp)))
                return -EFAULT;
 
-       return in_len;
+       return 0;
 }
 
 static int ib_uverbs_ex_query_device(struct uverbs_attr_bundle *attrs,