projects
/
firefly-linux-kernel-4.4.55.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'v3.10/topic/arm64-errata' into linux-linaro-lsk-v3.10
[firefly-linux-kernel-4.4.55.git]
/
crypto
/
algboss.c
diff --git
a/crypto/algboss.c
b/crypto/algboss.c
index 769219b293098d43bd8406e296ff8b388869e8c1..76fc0b23fc6cfd4c33188cd6e5b7454603b7a751 100644
(file)
--- a/
crypto/algboss.c
+++ b/
crypto/algboss.c
@@
-45,10
+45,9
@@
struct cryptomgr_param {
} nu32;
} attrs[CRYPTO_MAX_ATTRS];
} nu32;
} attrs[CRYPTO_MAX_ATTRS];
- char larval[CRYPTO_MAX_ALG_NAME];
char template[CRYPTO_MAX_ALG_NAME];
char template[CRYPTO_MAX_ALG_NAME];
- struct c
ompletion *completion
;
+ struct c
rypto_larval *larval
;
u32 otype;
u32 omask;
u32 otype;
u32 omask;
@@
-87,7
+86,8
@@
static int cryptomgr_probe(void *data)
crypto_tmpl_put(tmpl);
out:
crypto_tmpl_put(tmpl);
out:
- complete_all(param->completion);
+ complete_all(¶m->larval->completion);
+ crypto_alg_put(¶m->larval->alg);
kfree(param);
module_put_and_exit(0);
}
kfree(param);
module_put_and_exit(0);
}
@@
-187,18
+187,19
@@
static int cryptomgr_schedule_probe(struct crypto_larval *larval)
param->otype = larval->alg.cra_flags;
param->omask = larval->mask;
param->otype = larval->alg.cra_flags;
param->omask = larval->mask;
- memcpy(param->larval, larval->alg.cra_name, CRYPTO_MAX_ALG_NAME);
-
- param->completion = &larval->completion;
+ crypto_alg_get(&larval->alg);
+ param->larval = larval;
thread = kthread_run(cryptomgr_probe, param, "cryptomgr_probe");
if (IS_ERR(thread))
thread = kthread_run(cryptomgr_probe, param, "cryptomgr_probe");
if (IS_ERR(thread))
- goto err_
free_param
;
+ goto err_
put_larval
;
wait_for_completion_interruptible(&larval->completion);
return NOTIFY_STOP;
wait_for_completion_interruptible(&larval->completion);
return NOTIFY_STOP;
+err_put_larval:
+ crypto_alg_put(&larval->alg);
err_free_param:
kfree(param);
err_put_module:
err_free_param:
kfree(param);
err_put_module: