]> git.kernelconcepts.de Git - karo-tx-linux.git/blobdiff - drivers/crypto/caam/jr.c
Merge git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6
[karo-tx-linux.git] / drivers / crypto / caam / jr.c
index 93d14070141ae64fe4e96dd838fc28c36061b3cf..b4aa773ecbc83ec7f61548bae34145639ddbf5ec 100644 (file)
@@ -407,6 +407,7 @@ int caam_jr_shutdown(struct device *dev)
        dma_free_coherent(dev, sizeof(struct jr_outentry) * JOBR_DEPTH,
                          jrp->outring, outbusaddr);
        kfree(jrp->entinfo);
+       of_device_unregister(jrp->jr_pdev);
 
        return ret;
 }
@@ -454,6 +455,8 @@ int caam_jr_probe(struct platform_device *pdev, struct device_node *np,
                kfree(jrpriv);
                return -EINVAL;
        }
+
+       jrpriv->jr_pdev = jr_pdev;
        jrdev = &jr_pdev->dev;
        dev_set_drvdata(jrdev, jrpriv);
        ctrlpriv->jrdev[ring] = jrdev;
@@ -472,6 +475,7 @@ int caam_jr_probe(struct platform_device *pdev, struct device_node *np,
        /* Now do the platform independent part */
        error = caam_jr_init(jrdev); /* now turn on hardware */
        if (error) {
+               of_device_unregister(jr_pdev);
                kfree(jrpriv);
                return error;
        }