| From 47a1f8e8b3637ff5f7806587883d7d94068d9ee8 Mon Sep 17 00:00:00 2001 |
| From: Martin Kaiser <martin@kaiser.cx> |
| Date: Thu, 5 Mar 2020 21:58:20 +0100 |
| Subject: hwrng: imx-rngc - fix an error path |
| |
| From: Martin Kaiser <martin@kaiser.cx> |
| |
| commit 47a1f8e8b3637ff5f7806587883d7d94068d9ee8 upstream. |
| |
| Make sure that the rngc interrupt is masked if the rngc self test fails. |
| Self test failure means that probe fails as well. Interrupts should be |
| masked in this case, regardless of the error. |
| |
| Cc: stable@vger.kernel.org |
| Fixes: 1d5449445bd0 ("hwrng: mx-rngc - add a driver for Freescale RNGC") |
| Reviewed-by: PrasannaKumar Muralidharan <prasannatsmkumar@gmail.com> |
| Signed-off-by: Martin Kaiser <martin@kaiser.cx> |
| Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| drivers/char/hw_random/imx-rngc.c | 4 +++- |
| 1 file changed, 3 insertions(+), 1 deletion(-) |
| |
| --- a/drivers/char/hw_random/imx-rngc.c |
| +++ b/drivers/char/hw_random/imx-rngc.c |
| @@ -105,8 +105,10 @@ static int imx_rngc_self_test(struct imx |
| return -ETIMEDOUT; |
| } |
| |
| - if (rngc->err_reg != 0) |
| + if (rngc->err_reg != 0) { |
| + imx_rngc_irq_mask_clear(rngc); |
| return -EIO; |
| + } |
| |
| return 0; |
| } |