3.16.84-rc1 review patch.  If anyone has any objections, please let me know.

------------------

From: Chuhong Yuan <[email protected]>

commit 7f8c36fe9be46862c4f3c5302f769378028a34fa upstream.

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 to kill the tasklet automatically.

Fixes: ce92136843cb ("crypto: picoxcell - add support for the picoxcell crypto 
engines")
Signed-off-by: Chuhong Yuan <[email protected]>
Signed-off-by: Herbert Xu <[email protected]>
Signed-off-by: Ben Hutchings <[email protected]>
---
 drivers/crypto/picoxcell_crypto.c | 15 +++++++++++++--
 1 file changed, 13 insertions(+), 2 deletions(-)

--- a/drivers/crypto/picoxcell_crypto.c
+++ b/drivers/crypto/picoxcell_crypto.c
@@ -1690,6 +1690,11 @@ static bool spacc_is_compatible(struct p
        return false;
 }
 
+static void spacc_tasklet_kill(void *data)
+{
+       tasklet_kill(data);
+}
+
 static int spacc_probe(struct platform_device *pdev)
 {
        int i, err, ret = -EINVAL;
@@ -1730,6 +1735,14 @@ static int spacc_probe(struct platform_d
                return -ENXIO;
        }
 
+       tasklet_init(&engine->complete, spacc_spacc_complete,
+                    (unsigned long)engine);
+
+       ret = devm_add_action(&pdev->dev, spacc_tasklet_kill,
+                             &engine->complete);
+       if (ret)
+               return ret;
+
        if (devm_request_irq(&pdev->dev, irq->start, spacc_spacc_irq, 0,
                             engine->name, engine)) {
                dev_err(engine->dev, "failed to request IRQ\n");
@@ -1792,8 +1805,6 @@ static int spacc_probe(struct platform_d
        INIT_LIST_HEAD(&engine->completed);
        INIT_LIST_HEAD(&engine->in_progress);
        engine->in_flight = 0;
-       tasklet_init(&engine->complete, spacc_spacc_complete,
-                    (unsigned long)engine);
 
        platform_set_drvdata(pdev, engine);
 

Reply via email to