msm: crypto: set CLR_CNTXT bit for crypto operations

HLOS Crypto driver needs to set CLR_CNTXT bit for operations with
legacy software key registers

CAF-Change-Id: Iff482f726d106e99a4006f7077a171da3c7ca9c3
Signed-off-by: Zhen Kong <zkong@codeaurora.org>

CVE-2017-0626

Change-Id: Ieddc84f2ff36bc23a88c06a5752a68868c7e38bf
(cherry picked from commit 64551bccab9b5b933757f6256b58f9ca0544f004)
This commit is contained in:
Zhen Kong 2016-11-09 16:25:24 -08:00 committed by Sean McCreary
parent ce43fca33f
commit be4ae0dded
1 changed files with 8 additions and 8 deletions

View File

@ -1486,8 +1486,8 @@ static int _setup_cipher_aes_cmdlistptrs(struct qce_device *pdev,
}
qce_add_cmd_element(pdev, &ce_vaddr, CRYPTO_GOPROC_REG,
((1 << CRYPTO_GO) | (1 << CRYPTO_RESULTS_DUMP)),
&pcl_info->go_proc);
((1 << CRYPTO_GO) | (1 << CRYPTO_RESULTS_DUMP) |
(1 << CRYPTO_CLR_CNTXT)), &pcl_info->go_proc);
pcl_info->size = (uint32_t)ce_vaddr - (uint32_t)ce_vaddr_start;
*pvaddr = (unsigned char *) ce_vaddr;
@ -1629,8 +1629,8 @@ static int _setup_cipher_des_cmdlistptrs(struct qce_device *pdev,
}
qce_add_cmd_element(pdev, &ce_vaddr, CRYPTO_GOPROC_REG,
((1 << CRYPTO_GO) | (1 << CRYPTO_RESULTS_DUMP)),
&pcl_info->go_proc);
((1 << CRYPTO_GO) | (1 << CRYPTO_RESULTS_DUMP)
(1 << CRYPTO_CLR_CNTXT)), &pcl_info->go_proc);
pcl_info->size = (uint32_t)ce_vaddr - (uint32_t)ce_vaddr_start;
*pvaddr = (unsigned char *) ce_vaddr;
@ -1854,8 +1854,8 @@ static int _setup_auth_cmdlistptrs(struct qce_device *pdev,
}
if (alg != QCE_AEAD_SHA1_HMAC)
qce_add_cmd_element(pdev, &ce_vaddr, CRYPTO_GOPROC_REG,
((1 << CRYPTO_GO) | (1 << CRYPTO_RESULTS_DUMP)),
&pcl_info->go_proc);
((1 << CRYPTO_GO) | (1 << CRYPTO_RESULTS_DUMP)
(1 << CRYPTO_CLR_CNTXT)), &pcl_info->go_proc);
pcl_info->size = (uint32_t)ce_vaddr - (uint32_t)ce_vaddr_start;
*pvaddr = (unsigned char *) ce_vaddr;
@ -1993,8 +1993,8 @@ static int _setup_aead_cmdlistptrs(struct qce_device *pdev,
0, NULL);
qce_add_cmd_element(pdev, &ce_vaddr, CRYPTO_GOPROC_REG,
((1 << CRYPTO_GO) | (1 << CRYPTO_RESULTS_DUMP)),
&pcl_info->go_proc);
((1 << CRYPTO_GO) | (1 << CRYPTO_RESULTS_DUMP) |
(1 << CRYPTO_CLR_CNTXT)), &pcl_info->go_proc);
pcl_info->size = (uint32_t)ce_vaddr - (uint32_t)ce_vaddr_start;
*pvaddr = (unsigned char *) ce_vaddr;