diff options
Diffstat (limited to 'crypto/af_alg.c')
-rw-r--r-- | crypto/af_alg.c | 13 |
1 files changed, 10 insertions, 3 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 |