crypto: caam - remove jr register/deregister
authorYuan Kang <Yuan.Kang@freescale.com>
Sat, 23 Jun 2012 00:48:44 +0000 (19:48 -0500)
committerHerbert Xu <herbert@gondor.apana.org.au>
Wed, 27 Jun 2012 06:42:04 +0000 (14:42 +0800)
remove caam_jr_register and caam_jr_deregister
to allow sharing of job rings.

Signed-off-by: Yuan Kang <Yuan.Kang@freescale.com>
Signed-off-by: Kim Phillips <kim.phillips@freescale.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
drivers/crypto/caam/caamalg.c
drivers/crypto/caam/intern.h

index d0f8df1dcec35549812ab24097f7788c4e7ed468..a4e266f928c23ed99c6b59e6a7aa44be073ad7c6 100644 (file)
@@ -2228,7 +2228,7 @@ static int caam_cra_init(struct crypto_tfm *tfm)
         * distribute tfms across job rings to ensure in-order
         * crypto request processing per tfm
         */
-       ctx->jrdev = priv->algapi_jr[(tgt_jr / 2) % priv->num_jrs_for_algapi];
+       ctx->jrdev = priv->jrdev[(tgt_jr / 2) % priv->total_jobrs];
 
        /* copy descriptor header template value */
        ctx->class1_alg_type = OP_TYPE_CLASS1_ALG | caam_alg->class1_alg_type;
@@ -2265,7 +2265,6 @@ static void __exit caam_algapi_exit(void)
        struct device *ctrldev;
        struct caam_drv_private *priv;
        struct caam_crypto_alg *t_alg, *n;
-       int i, err;
 
        dev_node = of_find_compatible_node(NULL, NULL, "fsl,sec-v4.0");
        if (!dev_node) {
@@ -2290,13 +2289,6 @@ static void __exit caam_algapi_exit(void)
                list_del(&t_alg->entry);
                kfree(t_alg);
        }
-
-       for (i = 0; i < priv->total_jobrs; i++) {
-               err = caam_jr_deregister(priv->algapi_jr[i]);
-               if (err < 0)
-                       break;
-       }
-       kfree(priv->algapi_jr);
 }
 
 static struct caam_crypto_alg *caam_alg_alloc(struct device *ctrldev,
@@ -2349,7 +2341,7 @@ static int __init caam_algapi_init(void)
 {
        struct device_node *dev_node;
        struct platform_device *pdev;
-       struct device *ctrldev, **jrdev;
+       struct device *ctrldev;
        struct caam_drv_private *priv;
        int i = 0, err = 0;
 
@@ -2370,24 +2362,6 @@ static int __init caam_algapi_init(void)
 
        INIT_LIST_HEAD(&priv->alg_list);
 
-       jrdev = kmalloc(sizeof(*jrdev) * priv->total_jobrs, GFP_KERNEL);
-       if (!jrdev)
-               return -ENOMEM;
-
-       for (i = 0; i < priv->total_jobrs; i++) {
-               err = caam_jr_register(ctrldev, &jrdev[i]);
-               if (err < 0)
-                       break;
-       }
-       if (err < 0 && i == 0) {
-               dev_err(ctrldev, "algapi error in job ring registration: %d\n",
-                       err);
-               kfree(jrdev);
-               return err;
-       }
-
-       priv->num_jrs_for_algapi = i;
-       priv->algapi_jr = jrdev;
        atomic_set(&priv->tfm_count, -1);
 
        /* register crypto algorithms the device supports */
index a34be01b0b293941b3e5cae998664d615dee92ef..462be99d9a3c727d74de7dd0621bee93850b177f 100644 (file)
@@ -86,8 +86,6 @@ struct caam_drv_private {
 
        /* which jr allocated to scatterlist crypto */
        atomic_t tfm_count ____cacheline_aligned;
-       int num_jrs_for_algapi;
-       struct device **algapi_jr;
        /* list of registered crypto algorithms (mk generic context handle?) */
        struct list_head alg_list;