{
        struct fastrpc_invoke_args args[2] = { 0 };
 
-       /* Capability filled in userspace */
+       /*
+        * Capability filled in userspace. This carries the information
+        * about the remoteproc support which is fetched from the remoteproc
+        * sysfs node by userspace.
+        */
        dsp_attr_buf[0] = 0;
+       dsp_attr_buf_len -= 1;
 
        args[0].ptr = (u64)(uintptr_t)&dsp_attr_buf_len;
        args[0].length = sizeof(dsp_attr_buf_len);
        args[0].fd = -1;
        args[1].ptr = (u64)(uintptr_t)&dsp_attr_buf[1];
-       args[1].length = dsp_attr_buf_len;
+       args[1].length = dsp_attr_buf_len * sizeof(u32);
        args[1].fd = -1;
        fl->pd = USER_PD;
 
        if (!dsp_attributes)
                return -ENOMEM;
 
-       err = fastrpc_get_info_from_dsp(fl, dsp_attributes, FASTRPC_MAX_DSP_ATTRIBUTES_LEN);
+       err = fastrpc_get_info_from_dsp(fl, dsp_attributes, FASTRPC_MAX_DSP_ATTRIBUTES);
        if (err == DSP_UNSUPPORTED_API) {
                dev_info(&cctx->rpdev->dev,
                         "Warning: DSP capabilities not supported on domain: %d\n", domain);