|
@@ -617,7 +617,8 @@ int hfi1_user_sdma_process_request(struct file *fp, struct iovec *iovec,
|
|
|
if (!info.npkts || req->data_iovs > MAX_VECTORS_PER_REQ) {
|
|
|
SDMA_DBG(req, "Too many vectors (%u/%u)", req->data_iovs,
|
|
|
MAX_VECTORS_PER_REQ);
|
|
|
- return -EINVAL;
|
|
|
+ ret = -EINVAL;
|
|
|
+ goto free_req;
|
|
|
}
|
|
|
/* Copy the header from the user buffer */
|
|
|
ret = copy_from_user(&req->hdr, iovec[idx].iov_base + sizeof(info),
|