Re: [PATCH] crypto: caam/jr - fix shared IRQ line handling

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, Aug 08, 2023 at 12:55:27PM +0200, meenakshi.aggarwal@xxxxxxx wrote:
> From: Horia Geantă <horia.geanta@xxxxxxx>
> 
> 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@xxxxxxx>
> Signed-off-by: Meenakshi Aggarwal <meenakshi.aggarwal@xxxxxxx>
> ---
>  drivers/crypto/caam/jr.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)

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



[Index of Archives]     [Kernel]     [Gnu Classpath]     [Gnu Crypto]     [DM Crypt]     [Netfilter]     [Bugtraq]
  Powered by Linux