mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-10-29 23:53:32 +00:00
crypto: caam - fix RNG init descriptor ret. code checking
When successful, the descriptor that performs RNG initialization is allowed to return a status code of 7000_0000h, since last command in the descriptor is a JUMP HALT. Signed-off-by: Horia Geant? <horia.geanta@freescale.com> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
This commit is contained in:
parent
f109674951
commit
62743a4145
1 changed files with 3 additions and 2 deletions
|
@ -175,7 +175,7 @@ static int instantiate_rng(struct device *ctrldev, int state_handle_mask,
|
||||||
{
|
{
|
||||||
struct caam_drv_private *ctrlpriv = dev_get_drvdata(ctrldev);
|
struct caam_drv_private *ctrlpriv = dev_get_drvdata(ctrldev);
|
||||||
struct caam_ctrl __iomem *ctrl;
|
struct caam_ctrl __iomem *ctrl;
|
||||||
u32 *desc, status, rdsta_val;
|
u32 *desc, status = 0, rdsta_val;
|
||||||
int ret = 0, sh_idx;
|
int ret = 0, sh_idx;
|
||||||
|
|
||||||
ctrl = (struct caam_ctrl __iomem *)ctrlpriv->ctrl;
|
ctrl = (struct caam_ctrl __iomem *)ctrlpriv->ctrl;
|
||||||
|
@ -207,7 +207,8 @@ static int instantiate_rng(struct device *ctrldev, int state_handle_mask,
|
||||||
* CAAM eras), then try again.
|
* CAAM eras), then try again.
|
||||||
*/
|
*/
|
||||||
rdsta_val = rd_reg32(&ctrl->r4tst[0].rdsta) & RDSTA_IFMASK;
|
rdsta_val = rd_reg32(&ctrl->r4tst[0].rdsta) & RDSTA_IFMASK;
|
||||||
if (status || !(rdsta_val & (1 << sh_idx)))
|
if ((status && status != JRSTA_SSRC_JUMP_HALT_CC) ||
|
||||||
|
!(rdsta_val & (1 << sh_idx)))
|
||||||
ret = -EAGAIN;
|
ret = -EAGAIN;
|
||||||
if (ret)
|
if (ret)
|
||||||
break;
|
break;
|
||||||
|
|
Loading…
Reference in a new issue