mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2025-01-18 11:17:07 +00:00
crypto: xilinx: Handle AES PM API return status
Return value of AES PM API is not handled which may result in unexpected value of "status" in zynqmp_pm_aes_engine(). Consider "status" value as valid only if AES PM API is successful. Fixes: bc86f9c54616 ("firmware: xilinx: Remove eemi ops for aes engine") Reported-by: Stephen Rothwell <sfr@canb.auug.org.au> Signed-off-by: Rajan Vaja <rajan.vaja@xilinx.com> Link: https://lore.kernel.org/r/1588330354-27942-1-git-send-email-rajan.vaja@xilinx.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
56a9a80686
commit
1d9000262b
@ -85,6 +85,7 @@ static int zynqmp_aes_aead_cipher(struct aead_request *req)
|
||||
dma_addr_t dma_addr_data, dma_addr_hw_req;
|
||||
unsigned int data_size;
|
||||
unsigned int status;
|
||||
int ret;
|
||||
size_t dma_size;
|
||||
char *kbuf;
|
||||
int err;
|
||||
@ -132,9 +133,12 @@ static int zynqmp_aes_aead_cipher(struct aead_request *req)
|
||||
hwreq->key = 0;
|
||||
}
|
||||
|
||||
zynqmp_pm_aes_engine(dma_addr_hw_req, &status);
|
||||
ret = zynqmp_pm_aes_engine(dma_addr_hw_req, &status);
|
||||
|
||||
if (status) {
|
||||
if (ret) {
|
||||
dev_err(dev, "ERROR: AES PM API failed\n");
|
||||
err = ret;
|
||||
} else if (status) {
|
||||
switch (status) {
|
||||
case ZYNQMP_AES_GCM_TAG_MISMATCH_ERR:
|
||||
dev_err(dev, "ERROR: Gcm Tag mismatch\n");
|
||||
|
Loading…
x
Reference in New Issue
Block a user