On Sat, Nov 23, 2019 at 09:48:17PM +0800, Chuhong Yuan wrote: > Since tasklet is needed to be initialized before registering IRQ > handler, adjust the position of tasklet_init to fix the wrong order. > > Besides, to fix the missed tasklet_kill, this patch adds a helper > function and uses devm_add_action_or_reset to kill the tasklet > automatically. > > Fixes: ce92136843cb ("crypto: picoxcell - add support for the picoxcell crypto engines") > Signed-off-by: Chuhong Yuan <hslester96@xxxxxxxxx> > --- > Changes in v3: > - Use devm_add_action_or_reset to simplify the patch. > > drivers/crypto/picoxcell_crypto.c | 15 +++++++++++++-- > 1 file changed, 13 insertions(+), 2 deletions(-) Thanks for the patch. It looks much nicer. > @@ -1655,6 +1660,14 @@ static int spacc_probe(struct platform_device *pdev) > return -ENXIO; > } > > + tasklet_init(&engine->complete, spacc_spacc_complete, > + (unsigned long)engine); > + > + ret = devm_add_action_or_reset(&pdev->dev, spacc_tasklet_kill, > + &engine->complete); Minor nit. You only need devm_add_action as calling tasklet_kill at this point should be a no-op. Cheers, -- Email: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx> Home Page: http://gondor.apana.org.au/~herbert/ PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt