lkml.org 
[lkml]   [2019]   [Jul]   [3]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
SubjectRe: [PATCH v4 03/16] crypto: caam - move tasklet_init() call down
Date
On 7/3/2019 11:14 AM, Andrey Smirnov wrote:
> Move tasklet_init() call further down in order to simplify error path
> cleanup. No functional change intended.
>
> diff --git a/drivers/crypto/caam/jr.c b/drivers/crypto/caam/jr.c
> index 4b25b2fa3d02..a7ca2bbe243f 100644
> --- a/drivers/crypto/caam/jr.c
> +++ b/drivers/crypto/caam/jr.c
> @@ -441,15 +441,13 @@ static int caam_jr_init(struct device *dev)
>
> jrp = dev_get_drvdata(dev);
>
> - tasklet_init(&jrp->irqtask, caam_jr_dequeue, (unsigned long)dev);
> -
> /* Connect job ring interrupt handler. */
> error = request_irq(jrp->irq, caam_jr_interrupt, IRQF_SHARED,
> dev_name(dev), dev);
> if (error) {
> dev_err(dev, "can't connect JobR %d interrupt (%d)\n",
> jrp->ridx, jrp->irq);
> - goto out_kill_deq;
> + return error;
> }

The caam_jr_interrupt handler can schedule the tasklet so it makes sense
to have it be initialized ahead of request_irq. In theory it's possible
for an interrupt to be triggered immediately when request_irq is called.

I'm not very familiar with the CAAM ip, can you ensure no interrupts are
pending in HW at probe time? The "no functional change" part is not obvious.

--
Regards,
Leonard

\
 
 \ /
  Last update: 2019-07-03 15:51    [W:0.090 / U:2.564 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site