lkml.org 
[lkml]   [2023]   [Aug]   [18]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH] crypto: caam/jr - fix shared IRQ line handling
On Tue, Aug 08, 2023 at 12:55:27PM +0200, meenakshi.aggarwal@nxp.com wrote:
> From: Horia Geantă <horia.geanta@nxp.com>
>
> There are cases when the interrupt status register (JRINTR) is non-zero,
> even though:
> 1. An interrupt was generated, but it was masked OR
> 2. There was no interrupt generated at all
> for the corresponding job ring.
>
> 1. The case when interrupt is masked (JRCFGR_LS[IMSK]=1b'1)
> while other events have happened and are being accounted for, e.g.
> -JRINTR[HALT]=2b'10 - input job ring underwent a flush of all on-going
> jobs and processing of still-existing jobs (sitting in the ring) has been
> halted
> -JRINTR[HALT]=2b'01 - input job ring is currently undergoing a flush
> -JRINTR[ENTER_FAIL]=1b'1 - SecMon / SNVS transitioned to FAIL MODE
> It doesn't matter whether these events would assert the interrupt signal
> or not, interrupt is anyhow masked.
>
> 2. The case when interrupt is not masked (JRCFGR_LS[IMSK]=1b'0), however
> the events accounted for in JRINTR do not generate interrupts, e.g.:
> -JRINTR[HALT]=2b'01
> -JRINTR[ENTER_FAIL]=1b'1 and JRCFGR_MS[FAIL_MODE]=1b'0
>
> Currently in these cases, when the JR interrupt handler is invoked (as a
> consequence of JR sharing the interrupt line with other devices - e.g.
> the two JRs on i.MX7ULP) it continues execution instead of returning
> IRQ_NONE.
> This could lead to situations like interrupt handler clearing JRINTR (and
> thus also the JRINTR[HALT] field) while corresponding job ring is
> suspended and then that job ring failing on resume path, due to expecting
> JRINTR[HALT]=b'10 and reading instead JRINTR[HALT]=b'00.
>
> Fix this by checking status of JRINTR[JRI] in the JR interrupt handler.
> If JRINTR[JRI]=1b'0, there was no interrupt generated for this JR and
> handler must return IRQ_NONE.
>
> Signed-off-by: Horia Geantă <horia.geanta@nxp.com>
> Signed-off-by: Meenakshi Aggarwal <meenakshi.aggarwal@nxp.com>
> ---
> drivers/crypto/caam/jr.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)

Patch applied. Thanks.
--
Email: Herbert Xu <herbert@gondor.apana.org.au>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt

\
 
 \ /
  Last update: 2023-08-18 11:32    [W:0.088 / U:0.676 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site