diff options
Diffstat (limited to 'crypto')
-rw-r--r-- | crypto/af_alg.c | 13 | ||||
-rw-r--r-- | crypto/algif_aead.c | 4 | ||||
-rw-r--r-- | crypto/algif_skcipher.c | 4 |
3 files changed, 14 insertions, 7 deletions
diff --git a/crypto/af_alg.c b/crypto/af_alg.c index 49fa8582138b..314c52c967e5 100644 --- a/crypto/af_alg.c +++ b/crypto/af_alg.c | |||
@@ -1060,12 +1060,19 @@ void af_alg_async_cb(struct crypto_async_request *_req, int err) | |||
1060 | } | 1060 | } |
1061 | EXPORT_SYMBOL_GPL(af_alg_async_cb); | 1061 | EXPORT_SYMBOL_GPL(af_alg_async_cb); |
1062 | 1062 | ||
1063 | __poll_t af_alg_poll_mask(struct socket *sock, __poll_t events) | 1063 | /** |
1064 | * af_alg_poll - poll system call handler | ||
1065 | */ | ||
1066 | __poll_t af_alg_poll(struct file *file, struct socket *sock, | ||
1067 | poll_table *wait) | ||
1064 | { | 1068 | { |
1065 | struct sock *sk = sock->sk; | 1069 | struct sock *sk = sock->sk; |
1066 | struct alg_sock *ask = alg_sk(sk); | 1070 | struct alg_sock *ask = alg_sk(sk); |
1067 | struct af_alg_ctx *ctx = ask->private; | 1071 | struct af_alg_ctx *ctx = ask->private; |
1068 | __poll_t mask = 0; | 1072 | __poll_t mask; |
1073 | |||
1074 | sock_poll_wait(file, sk_sleep(sk), wait); | ||
1075 | mask = 0; | ||
1069 | 1076 | ||
1070 | if (!ctx->more || ctx->used) | 1077 | if (!ctx->more || ctx->used) |
1071 | mask |= EPOLLIN | EPOLLRDNORM; | 1078 | mask |= EPOLLIN | EPOLLRDNORM; |
@@ -1075,7 +1082,7 @@ __poll_t af_alg_poll_mask(struct socket *sock, __poll_t events) | |||
1075 | 1082 | ||
1076 | return mask; | 1083 | return mask; |
1077 | } | 1084 | } |
1078 | EXPORT_SYMBOL_GPL(af_alg_poll_mask); | 1085 | EXPORT_SYMBOL_GPL(af_alg_poll); |
1079 | 1086 | ||
1080 | /** | 1087 | /** |
1081 | * af_alg_alloc_areq - allocate struct af_alg_async_req | 1088 | * af_alg_alloc_areq - allocate struct af_alg_async_req |
diff --git a/crypto/algif_aead.c b/crypto/algif_aead.c index 825524f27438..c40a8c7ee8ae 100644 --- a/crypto/algif_aead.c +++ b/crypto/algif_aead.c | |||
@@ -375,7 +375,7 @@ static struct proto_ops algif_aead_ops = { | |||
375 | .sendmsg = aead_sendmsg, | 375 | .sendmsg = aead_sendmsg, |
376 | .sendpage = af_alg_sendpage, | 376 | .sendpage = af_alg_sendpage, |
377 | .recvmsg = aead_recvmsg, | 377 | .recvmsg = aead_recvmsg, |
378 | .poll_mask = af_alg_poll_mask, | 378 | .poll = af_alg_poll, |
379 | }; | 379 | }; |
380 | 380 | ||
381 | static int aead_check_key(struct socket *sock) | 381 | static int aead_check_key(struct socket *sock) |
@@ -471,7 +471,7 @@ static struct proto_ops algif_aead_ops_nokey = { | |||
471 | .sendmsg = aead_sendmsg_nokey, | 471 | .sendmsg = aead_sendmsg_nokey, |
472 | .sendpage = aead_sendpage_nokey, | 472 | .sendpage = aead_sendpage_nokey, |
473 | .recvmsg = aead_recvmsg_nokey, | 473 | .recvmsg = aead_recvmsg_nokey, |
474 | .poll_mask = af_alg_poll_mask, | 474 | .poll = af_alg_poll, |
475 | }; | 475 | }; |
476 | 476 | ||
477 | static void *aead_bind(const char *name, u32 type, u32 mask) | 477 | static void *aead_bind(const char *name, u32 type, u32 mask) |
diff --git a/crypto/algif_skcipher.c b/crypto/algif_skcipher.c index 4c04eb9888ad..cfdaab2b7d76 100644 --- a/crypto/algif_skcipher.c +++ b/crypto/algif_skcipher.c | |||
@@ -206,7 +206,7 @@ static struct proto_ops algif_skcipher_ops = { | |||
206 | .sendmsg = skcipher_sendmsg, | 206 | .sendmsg = skcipher_sendmsg, |
207 | .sendpage = af_alg_sendpage, | 207 | .sendpage = af_alg_sendpage, |
208 | .recvmsg = skcipher_recvmsg, | 208 | .recvmsg = skcipher_recvmsg, |
209 | .poll_mask = af_alg_poll_mask, | 209 | .poll = af_alg_poll, |
210 | }; | 210 | }; |
211 | 211 | ||
212 | static int skcipher_check_key(struct socket *sock) | 212 | static int skcipher_check_key(struct socket *sock) |
@@ -302,7 +302,7 @@ static struct proto_ops algif_skcipher_ops_nokey = { | |||
302 | .sendmsg = skcipher_sendmsg_nokey, | 302 | .sendmsg = skcipher_sendmsg_nokey, |
303 | .sendpage = skcipher_sendpage_nokey, | 303 | .sendpage = skcipher_sendpage_nokey, |
304 | .recvmsg = skcipher_recvmsg_nokey, | 304 | .recvmsg = skcipher_recvmsg_nokey, |
305 | .poll_mask = af_alg_poll_mask, | 305 | .poll = af_alg_poll, |
306 | }; | 306 | }; |
307 | 307 | ||
308 | static void *skcipher_bind(const char *name, u32 type, u32 mask) | 308 | static void *skcipher_bind(const char *name, u32 type, u32 mask) |