diff options
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.patch | 66 |
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 + |