diff options
author | Linux Build Service Account <lnxbuild@localhost> | 2023-04-21 00:48:43 -0700 |
---|---|---|
committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2023-04-21 00:48:49 -0700 |
commit | a7f988ebc5959eec178fade8310d2f26bcf7af53 (patch) | |
tree | d1bec417ea1d9be3289653eaf06547e8ec1730a5 | |
parent | 5db25368d053e65e640b81f1c32143b9d46ce621 (diff) | |
parent | c16958000f92874c29c61012f2553954ba6a8a4d (diff) | |
download | securemsm-a7f988ebc5959eec178fade8310d2f26bcf7af53.tar.gz |
Merge "Qcedev: To make qcedev compatible with 32 bit targets." into sec-kernel.lnx.13.1.r9-rel
-rw-r--r-- | crypto-qti/compat_qcedev.c | 6 | ||||
-rw-r--r-- | crypto-qti/qcedev.c | 158 |
2 files changed, 76 insertions, 88 deletions
diff --git a/crypto-qti/compat_qcedev.c b/crypto-qti/compat_qcedev.c index 9863f5c..59b3305 100644 --- a/crypto-qti/compat_qcedev.c +++ b/crypto-qti/compat_qcedev.c @@ -489,7 +489,7 @@ long compat_qcedev_ioctl(struct file *file, int err; data32 = compat_ptr(arg); - data = kmalloc(sizeof(*data),GFP_KERNEL); + data = kmalloc(sizeof(*data), GFP_KERNEL); if (!data) return -EINVAL; @@ -502,8 +502,6 @@ long compat_qcedev_ioctl(struct file *file, err = compat_xfer_qcedev_map_buf_req(data32, data, false); kfree(data); return ret ? ret : err; - - break; } case COMPAT_QCEDEV_IOCTL_UNMAP_BUF_REQ: { struct compat_qcedev_unmap_buf_req __user *data32; @@ -524,8 +522,6 @@ long compat_qcedev_ioctl(struct file *file, err = compat_xfer_qcedev_unmap_buf_req(data32, data, false); kfree(data); return ret ? ret : err; - - break; } default: return -ENOIOCTLCMD; diff --git a/crypto-qti/qcedev.c b/crypto-qti/qcedev.c index ad52395..4b5136b 100644 --- a/crypto-qti/qcedev.c +++ b/crypto-qti/qcedev.c @@ -2195,7 +2195,7 @@ long qcedev_ioctl(struct file *file, switch (cmd) { case QCEDEV_IOCTL_ENC_REQ: - case QCEDEV_IOCTL_DEC_REQ: + case QCEDEV_IOCTL_DEC_REQ: { K_COPY_FROM_USER(err, &qcedev_areq->cipher_op_req, arg, sizeof(struct qcedev_cipher_op_req)); if (err) { @@ -2221,8 +2221,8 @@ long qcedev_ioctl(struct file *file, goto exit_free_qcedev_areq; } break; - - case QCEDEV_IOCTL_OFFLOAD_OP_REQ: + } + case QCEDEV_IOCTL_OFFLOAD_OP_REQ: { K_COPY_FROM_USER(err, &qcedev_areq->offload_cipher_op_req, arg, sizeof(struct qcedev_offload_cipher_op_req)); if (err) { @@ -2248,9 +2248,8 @@ long qcedev_ioctl(struct file *file, goto exit_free_qcedev_areq; } break; - - case QCEDEV_IOCTL_SHA_INIT_REQ: - { + } + case QCEDEV_IOCTL_SHA_INIT_REQ: { struct scatterlist sg_src; K_COPY_FROM_USER(err, &qcedev_areq->sha_op_req, arg, sizeof(struct qcedev_sha_op_req)); @@ -2278,16 +2277,16 @@ long qcedev_ioctl(struct file *file, goto exit_free_qcedev_areq; } handle->sha_ctxt.init_done = true; - } break; - case QCEDEV_IOCTL_GET_CMAC_REQ: + } + case QCEDEV_IOCTL_GET_CMAC_REQ: { if (!podev->ce_support.cmac) { err = -ENOTTY; goto exit_free_qcedev_areq; } + } /* Fall-through */ - case QCEDEV_IOCTL_SHA_UPDATE_REQ: - { + case QCEDEV_IOCTL_SHA_UPDATE_REQ: { struct scatterlist sg_src; K_COPY_FROM_USER(err, &qcedev_areq->sha_op_req, arg, sizeof(struct qcedev_sha_op_req)); @@ -2340,11 +2339,9 @@ long qcedev_ioctl(struct file *file, err = -EFAULT; goto exit_free_qcedev_areq; } - } break; - - case QCEDEV_IOCTL_SHA_FINAL_REQ: - + } + case QCEDEV_IOCTL_SHA_FINAL_REQ: { if (!handle->sha_ctxt.init_done) { pr_err("%s Init was not called\n", __func__); err = -EINVAL; @@ -2388,9 +2385,8 @@ long qcedev_ioctl(struct file *file, } handle->sha_ctxt.init_done = false; break; - - case QCEDEV_IOCTL_GET_SHA_REQ: - { + } + case QCEDEV_IOCTL_GET_SHA_REQ: { struct scatterlist sg_src; K_COPY_FROM_USER(err, &qcedev_areq->sha_op_req, arg, sizeof(struct qcedev_sha_op_req)); @@ -2434,86 +2430,82 @@ long qcedev_ioctl(struct file *file, err = -EFAULT; goto exit_free_qcedev_areq; } - } break; + } + case QCEDEV_IOCTL_MAP_BUF_REQ: { + unsigned long long vaddr = 0; + struct qcedev_map_buf_req map_buf = { {0} }; + int i = 0; - case QCEDEV_IOCTL_MAP_BUF_REQ: - { - unsigned long long vaddr = 0; - struct qcedev_map_buf_req map_buf = { {0} }; - int i = 0; - - K_COPY_FROM_USER(err, &map_buf, - arg, sizeof(map_buf)); - if (err) { - err = -EFAULT; - goto exit_free_qcedev_areq; - } - - if (map_buf.num_fds > ARRAY_SIZE(map_buf.fd)) { - pr_err("%s: err: num_fds = %d exceeds max value\n", - __func__, map_buf.num_fds); - err = -EINVAL; - goto exit_free_qcedev_areq; - } + K_COPY_FROM_USER(err, &map_buf, + arg, sizeof(map_buf)); + if (err) { + err = -EFAULT; + goto exit_free_qcedev_areq; + } - for (i = 0; i < map_buf.num_fds; i++) { - err = qcedev_check_and_map_buffer(handle, - map_buf.fd[i], - map_buf.fd_offset[i], - map_buf.fd_size[i], - &vaddr); - if (err) { - pr_err( - "%s: err: failed to map fd(%d) - %d\n", - __func__, map_buf.fd[i], err); - goto exit_free_qcedev_areq; - } - map_buf.buf_vaddr[i] = vaddr; - pr_info("%s: info: vaddr = %llx\n, fd = %d", - __func__, vaddr, map_buf.fd[i]); - } + if (map_buf.num_fds > ARRAY_SIZE(map_buf.fd)) { + pr_err("%s: err: num_fds = %d exceeds max value\n", + __func__, map_buf.num_fds); + err = -EINVAL; + goto exit_free_qcedev_areq; + } - K_COPY_TO_USER(err, arg, &map_buf, - sizeof(map_buf)); + for (i = 0; i < map_buf.num_fds; i++) { + err = qcedev_check_and_map_buffer(handle, + map_buf.fd[i], + map_buf.fd_offset[i], + map_buf.fd_size[i], + &vaddr); if (err) { - err = -EFAULT; + pr_err( + "%s: err: failed to map fd(%d) - %d\n", + __func__, map_buf.fd[i], err); goto exit_free_qcedev_areq; } - break; + map_buf.buf_vaddr[i] = vaddr; + pr_info("%s: info: vaddr = %llx\n, fd = %d", + __func__, vaddr, map_buf.fd[i]); } - case QCEDEV_IOCTL_UNMAP_BUF_REQ: - { - struct qcedev_unmap_buf_req unmap_buf = { { 0 } }; - int i = 0; + K_COPY_TO_USER(err, arg, &map_buf, + sizeof(map_buf)); + if (err) { + err = -EFAULT; + goto exit_free_qcedev_areq; + } + break; + } + case QCEDEV_IOCTL_UNMAP_BUF_REQ: { + struct qcedev_unmap_buf_req unmap_buf = { { 0 } }; + int i = 0; - K_COPY_FROM_USER(err, &unmap_buf, - arg, sizeof(unmap_buf)); + K_COPY_FROM_USER(err, &unmap_buf, + arg, sizeof(unmap_buf)); + if (err) { + err = -EFAULT; + goto exit_free_qcedev_areq; + } + if (unmap_buf.num_fds > ARRAY_SIZE(unmap_buf.fd)) { + pr_err("%s: err: num_fds = %d exceeds max value\n", + __func__, unmap_buf.num_fds); + err = -EINVAL; + goto exit_free_qcedev_areq; + } + + for (i = 0; i < unmap_buf.num_fds; i++) { + err = qcedev_check_and_unmap_buffer(handle, + unmap_buf.fd[i]); if (err) { - err = -EFAULT; - goto exit_free_qcedev_areq; - } - if (unmap_buf.num_fds > ARRAY_SIZE(unmap_buf.fd)) { - pr_err("%s: err: num_fds = %d exceeds max value\n", - __func__, unmap_buf.num_fds); - err = -EINVAL; + pr_err( + "%s: err: failed to unmap fd(%d) - %d\n", + __func__, + unmap_buf.fd[i], err); goto exit_free_qcedev_areq; } - - for (i = 0; i < unmap_buf.num_fds; i++) { - err = qcedev_check_and_unmap_buffer(handle, - unmap_buf.fd[i]); - if (err) { - pr_err( - "%s: err: failed to unmap fd(%d) - %d\n", - __func__, - unmap_buf.fd[i], err); - goto exit_free_qcedev_areq; - } - } - break; } + break; + } default: err = -ENOTTY; |