summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLinux Build Service Account <lnxbuild@localhost>2023-04-21 00:48:43 -0700
committerGerrit - the friendly Code Review server <code-review@localhost>2023-04-21 00:48:49 -0700
commita7f988ebc5959eec178fade8310d2f26bcf7af53 (patch)
treed1bec417ea1d9be3289653eaf06547e8ec1730a5
parent5db25368d053e65e640b81f1c32143b9d46ce621 (diff)
parentc16958000f92874c29c61012f2553954ba6a8a4d (diff)
downloadsecuremsm-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.c6
-rw-r--r--crypto-qti/qcedev.c158
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;