perf jevents: Add new structure to pass json fields.
[linux-2.6-microblaze.git] / crypto / ctr.c
index 31ac4ae..c39fcff 100644 (file)
@@ -256,29 +256,20 @@ static void crypto_rfc3686_free(struct skcipher_instance *inst)
 static int crypto_rfc3686_create(struct crypto_template *tmpl,
                                 struct rtattr **tb)
 {
-       struct crypto_attr_type *algt;
        struct skcipher_instance *inst;
        struct skcipher_alg *alg;
        struct crypto_skcipher_spawn *spawn;
        u32 mask;
-
        int err;
 
-       algt = crypto_get_attr_type(tb);
-       if (IS_ERR(algt))
-               return PTR_ERR(algt);
-
-       if ((algt->type ^ CRYPTO_ALG_TYPE_SKCIPHER) & algt->mask)
-               return -EINVAL;
+       err = crypto_check_attr_type(tb, CRYPTO_ALG_TYPE_SKCIPHER, &mask);
+       if (err)
+               return err;
 
        inst = kzalloc(sizeof(*inst) + sizeof(*spawn), GFP_KERNEL);
        if (!inst)
                return -ENOMEM;
 
-       mask = crypto_requires_sync(algt->type, algt->mask) |
-               crypto_requires_off(algt->type, algt->mask,
-                                   CRYPTO_ALG_NEED_FALLBACK);
-
        spawn = skcipher_instance_ctx(inst);
 
        err = crypto_grab_skcipher(spawn, skcipher_crypto_instance(inst),
@@ -310,8 +301,6 @@ static int crypto_rfc3686_create(struct crypto_template *tmpl,
        inst->alg.base.cra_blocksize = 1;
        inst->alg.base.cra_alignmask = alg->base.cra_alignmask;
 
-       inst->alg.base.cra_flags = alg->base.cra_flags & CRYPTO_ALG_ASYNC;
-
        inst->alg.ivsize = CTR_RFC3686_IV_SIZE;
        inst->alg.chunksize = crypto_skcipher_alg_chunksize(alg);
        inst->alg.min_keysize = crypto_skcipher_alg_min_keysize(alg) +