aboutsummaryrefslogtreecommitdiffstats
path: root/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71-e3000/0018-crypto-ccp-use-ENOSPC-for-transient-busy-indication.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71-e3000/0018-crypto-ccp-use-ENOSPC-for-transient-busy-indication.patch')
-rw-r--r--meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71-e3000/0018-crypto-ccp-use-ENOSPC-for-transient-busy-indication.patch66
1 files changed, 66 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71-e3000/0018-crypto-ccp-use-ENOSPC-for-transient-busy-indication.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71-e3000/0018-crypto-ccp-use-ENOSPC-for-transient-busy-indication.patch
new file mode 100644
index 00000000..2d35672c
--- /dev/null
+++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71-e3000/0018-crypto-ccp-use-ENOSPC-for-transient-busy-indication.patch
@@ -0,0 +1,66 @@
+From 45ab44e350f6af9ec0d43c492c307aeb89c70b9a Mon Sep 17 00:00:00 2001
+From: Gilad Ben-Yossef <gilad@benyossef.com>
+Date: Wed, 18 Oct 2017 08:00:34 +0100
+Subject: [PATCH 18/95] crypto: ccp - use -ENOSPC for transient busy indication
+
+Replace -EBUSY with -ENOSPC when reporting transient busy
+indication in the absence of backlog.
+
+Signed-off-by: Gilad Ben-Yossef <gilad@benyossef.com>
+Reviewed-by: Gary R Hook <gary.hook@amd.com>
+Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
+Signed-off-by: Sudheesh Mavila <sudheesh.mavila@amd.com>
+---
+ drivers/crypto/ccp/ccp-crypto-main.c | 8 +++-----
+ drivers/crypto/ccp/ccp-dev.c | 7 +++++--
+ 2 files changed, 8 insertions(+), 7 deletions(-)
+
+diff --git a/drivers/crypto/ccp/ccp-crypto-main.c b/drivers/crypto/ccp/ccp-crypto-main.c
+index 35a9de7..b95d199 100644
+--- a/drivers/crypto/ccp/ccp-crypto-main.c
++++ b/drivers/crypto/ccp/ccp-crypto-main.c
+@@ -222,9 +222,10 @@ static int ccp_crypto_enqueue_cmd(struct ccp_crypto_cmd *crypto_cmd)
+
+ /* Check if the cmd can/should be queued */
+ if (req_queue.cmd_count >= CCP_CRYPTO_MAX_QLEN) {
+- ret = -EBUSY;
+- if (!(crypto_cmd->cmd->flags & CCP_CMD_MAY_BACKLOG))
++ if (!(crypto_cmd->cmd->flags & CCP_CMD_MAY_BACKLOG)) {
++ ret = -ENOSPC;
+ goto e_lock;
++ }
+ }
+
+ /* Look for an entry with the same tfm. If there is a cmd
+@@ -243,9 +244,6 @@ static int ccp_crypto_enqueue_cmd(struct ccp_crypto_cmd *crypto_cmd)
+ ret = ccp_enqueue_cmd(crypto_cmd->cmd);
+ if (!ccp_crypto_success(ret))
+ goto e_lock; /* Error, don't queue it */
+- if ((ret == -EBUSY) &&
+- !(crypto_cmd->cmd->flags & CCP_CMD_MAY_BACKLOG))
+- goto e_lock; /* Not backlogging, don't queue it */
+ }
+
+ if (req_queue.cmd_count >= CCP_CRYPTO_MAX_QLEN) {
+diff --git a/drivers/crypto/ccp/ccp-dev.c b/drivers/crypto/ccp/ccp-dev.c
+index 4e029b1..1b5035d 100644
+--- a/drivers/crypto/ccp/ccp-dev.c
++++ b/drivers/crypto/ccp/ccp-dev.c
+@@ -292,9 +292,12 @@ int ccp_enqueue_cmd(struct ccp_cmd *cmd)
+ i = ccp->cmd_q_count;
+
+ if (ccp->cmd_count >= MAX_CMD_QLEN) {
+- ret = -EBUSY;
+- if (cmd->flags & CCP_CMD_MAY_BACKLOG)
++ if (cmd->flags & CCP_CMD_MAY_BACKLOG) {
++ ret = -EBUSY;
+ list_add_tail(&cmd->entry, &ccp->backlog);
++ } else {
++ ret = -ENOSPC;
++ }
+ } else {
+ ret = -EINPROGRESS;
+ ccp->cmd_count++;
+--
+2.7.4
+