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: bc86f9c546
("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:
Родитель
56a9a80686
Коммит
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");
|
||||
|
|
Загрузка…
Ссылка в новой задаче