X-Git-Url: http://plrg.eecs.uci.edu/git/?a=blobdiff_plain;f=crypto%2Faf_alg.c;h=6ef6e2ad344e1227dd7d125299f462ea7261a9cc;hb=0bdf7953e7c97de5100d5f4ecad7a5d0c760503c;hp=ac33d5f3077823af1e714039e2bc093763f8c2fb;hpb=8554cc18db47a4d2876852dad72ce3fb0561c3a7;p=firefly-linux-kernel-4.4.55.git diff --git a/crypto/af_alg.c b/crypto/af_alg.c index ac33d5f30778..6ef6e2ad344e 100644 --- a/crypto/af_alg.c +++ b/crypto/af_alg.c @@ -21,6 +21,7 @@ #include #include #include +#include struct alg_type_list { const struct af_alg_type *type; @@ -243,6 +244,7 @@ int af_alg_accept(struct sock *sk, struct socket *newsock) sock_init_data(newsock, sk2); sock_graft(sk2, newsock); + security_sk_clone(sk, sk2); err = type->accept(ask->private, sk2); if (err) { @@ -447,6 +449,9 @@ void af_alg_complete(struct crypto_async_request *req, int err) { struct af_alg_completion *completion = req->data; + if (err == -EINPROGRESS) + return; + completion->err = err; complete(&completion->completion); }