mirror of
git://git.yoctoproject.org/linux-yocto.git
synced 2025-10-22 23:13:01 +02:00
crypto: octeontx2 - add timeout for load_fvc completion poll
[ Upstream commit 2157e50f65
]
Adds timeout to exit from possible infinite loop, which polls
on CPT instruction(load_fvc) completion.
Signed-off-by: Srujana Challa <schalla@marvell.com>
Signed-off-by: Bharat Bhushan <bbhushan2@marvell.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
parent
eb6059474e
commit
e6f44cd741
|
@ -1419,6 +1419,7 @@ int otx2_cpt_discover_eng_capabilities(struct otx2_cptpf_dev *cptpf)
|
|||
dma_addr_t rptr_baddr;
|
||||
struct pci_dev *pdev;
|
||||
u32 len, compl_rlen;
|
||||
int timeout = 10000;
|
||||
int ret, etype;
|
||||
void *rptr;
|
||||
|
||||
|
@ -1483,16 +1484,27 @@ int otx2_cpt_discover_eng_capabilities(struct otx2_cptpf_dev *cptpf)
|
|||
etype);
|
||||
otx2_cpt_fill_inst(&inst, &iq_cmd, rptr_baddr);
|
||||
lfs->ops->send_cmd(&inst, 1, &cptpf->lfs.lf[0]);
|
||||
timeout = 10000;
|
||||
|
||||
while (lfs->ops->cpt_get_compcode(result) ==
|
||||
OTX2_CPT_COMPLETION_CODE_INIT)
|
||||
OTX2_CPT_COMPLETION_CODE_INIT) {
|
||||
cpu_relax();
|
||||
udelay(1);
|
||||
timeout--;
|
||||
if (!timeout) {
|
||||
ret = -ENODEV;
|
||||
cptpf->is_eng_caps_discovered = false;
|
||||
dev_warn(&pdev->dev, "Timeout on CPT load_fvc completion poll\n");
|
||||
goto error_no_response;
|
||||
}
|
||||
}
|
||||
|
||||
cptpf->eng_caps[etype].u = be64_to_cpup(rptr);
|
||||
}
|
||||
dma_unmap_single(&pdev->dev, rptr_baddr, len, DMA_BIDIRECTIONAL);
|
||||
cptpf->is_eng_caps_discovered = true;
|
||||
|
||||
error_no_response:
|
||||
dma_unmap_single(&pdev->dev, rptr_baddr, len, DMA_BIDIRECTIONAL);
|
||||
free_result:
|
||||
kfree(result);
|
||||
lf_cleanup:
|
||||
|
|
Loading…
Reference in New Issue
Block a user